bzoj3211,bzoj3038

时间:2022-01-31 01:26:29

线段树的裸题;

但是操作很奇怪,开方是不能lazy tag的

看来只能暴力修改了

但注意,开放开到1的时候就不用开,立一个flag就可以了

这可以大大的优化;

其实我是来复习线段树的

 var tree:array[..] of int64;
    lazy:array[..] of boolean;
    a:array[..] of int64;
    n,m,ch,p,q,l,r,i:longint; procedure swap(var a,b:longint);
  var c:longint;
  begin
    c:=a;
    a:=b;
    b:=c;
  end; procedure update(i:longint);
  begin
    tree[i]:=tree[i*]+tree[i*+];
    lazy[i]:=lazy[i*] and lazy[i*+];
  end; procedure build(i,l,r:longint);
  var m:longint;
  begin
    if l=r then
    begin
      tree[i]:=a[l];
      lazy[i]:=false;
    end
    else begin
      m:=(l+r) shr ;
      build(i*,l,m);
      build(i*+,m+,r);
      update(i);
    end;
  end; procedure work(i,l,r:longint);
  var m:longint;
  begin
    if l=r then
    begin
      tree[i]:=trunc(sqrt(tree[i]));
      if tree[i]= then lazy[i]:=true;
    end
    else begin
      m:=(l+r) shr ;
      if (p<=m) and not lazy[i*] then work(i*,l,m);
      if (q>m) and not lazy[i*+] then work(i*+,m+,r);
      update(i);
    end;
  end; function ask(i,l,r:longint):int64;
  var m:longint;
  begin
    if (p<=l) and (q>=r) then exit(tree[i])
    else begin
      m:=(l+r) shr ;
      ask:=;
      if p<=m then ask:=ask+ask(i*,l,m);
      if q>m then ask:=ask+ask(i*+,m+,r);
    end;
  end; begin
  readln(n);
  for i:= to n do
    read(a[i]);
  build(,,n);
  readln(m);
  for i:= to m do
  begin
    readln(ch,p,q);
    if p>q then swap(p,q);
    if ch= then
      work(,,n)
    else if ch= then
      writeln(ask(,,n));
  end;
end.

bzoj3211,bzoj3038的更多相关文章

  1. bzoj3211花神游历各国&amp&semi;&amp&semi;bzoj3038上帝造题的七分钟2&ast;

    bzoj3211花神游历各国 题意: n个数的序列,m个操作,操作两种:区间开根(向下取整)和区间求和.n≤100000,m≤200000,序列中的数非负且≤109. 题解: 一个≤109的数开6次根 ...

  2. Pyhton开源框架&lpar;加强版&rpar;

    info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...

  3. MPlayer

    名称   mplayer − 电影播放器 mencoder − 电影编解码器 概要   mplayer [选项] [文件|URL|播放列表|−] mplayer [选项] 文件1 [指定选项] [文件 ...

  4. python 爬取腾讯微博并生成词云

    本文以延参法师的腾讯微博为例进行爬取并分析 ,话不多说 直接附上源代码.其中有比较详细的注释. 需要用到的包有 BeautifulSoup WordCloud jieba # coding:utf-8 ...

  5. 面经 cisco

    1. 优先级反转问题及解决方法 (1)什么是优先级反转 简单从字面上来说,就是低优先级的任务先于高优先级的任务执行了,优先级搞反了.那在什么情况下会生这种情况呢? 假设三个任务准备执行,A,B,C,优 ...

  6. linux驱动&lpar;续&rpar;

    网络通信 --> IO多路复用之select.poll.epoll详解 IO多路复用之select.poll.epoll详解      目前支持I/O多路复用的系统调用有 select,psel ...

  7. HttpServletRequest对象&lpar;一&rpar;

    javaweb学习总结(十)——HttpServletRequest对象(一) 一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HT ...

  8. 【bzoj3211】花神游历各国&amp&semi;&amp&semi;【bzoj3038】上帝造题的七分钟2

    bzoj3038]上帝造题的七分钟2 Description XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. “第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟, ...

  9. bzoj3211 花神游历各国 线段树,势能分析

    [bzoj3211]花神游历各国 2014年3月17日2,7230 Description   Input   Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input ...

随机推荐

  1. php如何控制用户对图片的访问 PHP禁止图片盗链&lpar;转载&rpar;

    把images目录设置成不充许http访问(把图片目录的:读取.目录浏览 两个权限去掉). 用一个PHP文件,直接用file函数读取这个图片.在这个PHP文件里进行权限控制. apache环境中,在你 ...

  2. python 打包exe注意的问题

    教程百度.谷歌都有,本文讲讲安装时出错的问题. 教程:http://keliang.blog.51cto.com/3359430/661884 1.cxfreeze 找不到路径时: 需要修改Scrip ...

  3. Navicate DataModel 注册码

    注册信息: 姓    名:ttrar.com 组    织:(空) 序列号:NAVD-6CLM-6BKA-5TXK 内容来自: 可视化数据库设计工具(Navicat Data Modeler)1.0. ...

  4. Java 8 默认方法和多继承深入解析

    以前经常谈论的Java对比c++的一个优势是Java中没有多继承的问题. 因为Java中子类只能继承(extends)单个父类, 尽管可以实现(implements)多个接口,但是接口中只有抽象方法, ...

  5. java 线程方法join的简单总结

    虽然关于讨论线程join方法的博客已经很多了,不过个人感觉挺多都讨论得不够全面,所以我觉得有必要对其进行一个全面的总结. 一.作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间 ...

  6. Dynamics CRM2016 Web API之通过实体的primary key查询记录&lpar;二&rpar;

    继续接上篇,还是通过primary key来查询数据,本篇介绍两个我个人比较喜欢的查询方式,一个是查询单个字段,一个是查询lookup关联实体中的属性字段. 先来看如何查询单个字段,只需要在url的最 ...

  7. C程序员眼里的Python

    注释 Phython的注释和C语言非常不同,第一种 #开头的注释,类似于C的//开头,而"""对 包围注释,类似于C的/* */,以及xml类的<!--    -- ...

  8. apache tomcat的安装

    第一步:下载及安装. 1.首先进入apache的官网网址:www.apache.org 2.点击 projects 3.进入tomcat下载页面. 4.点击tomcat 9 5.认准是Binary D ...

  9. nginx增加第三方模块

    增加第三方模块 ============================================================ 一.概述nginx文件非常小但是性能非常的高效,这方面完胜ap ...

  10. laravel 修改时邮箱字段唯一性验证时忽略指定 ID