***又是超时的问题,当一个区间全是1时,再去开方和不开方是一样的,所以在这一步不需要再往底层递归了***

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stack>
#include <queue>
#include <cmath> using namespace std;
typedef long long LL;
#define oo 0x3f3f3f3f
#define N 201000 struct node
{
int l, r;
int len()
{
return r-l+1;
}
LL s;
} tree[N*4]; LL A[N];//数据较大,元素用long long void build(int l, int r, int rt)
{
tree[rt].l=l;
tree[rt].r=r;
if(l==r)
{
tree[rt].s=A[l];
return ;
}
int mid=(l+r)/2;
build(l, mid, rt*2);
build(mid+1, r, rt*2+1);
tree[rt].s=tree[rt*2].s+tree[rt*2+1].s;
} void update(int l, int r, int rt)
{
if(tree[rt].len()==tree[rt].s)//当一个区间全是1时
return ;
if(tree[rt].r<l || tree[rt].l>r)
return ;
if(tree[rt].l>=l && tree[rt].r<=r && tree[rt].l==tree[rt].r)
{
tree[rt].s=(LL)sqrt(tree[rt].s);
return ;
}
int mid=(tree[rt].l+tree[rt].r)/2;
if(r<=mid) update(l, r, rt*2);
else if(l>mid) update(l, r, rt*2+1);
else
{
update(l, mid, rt*2);
update(mid+1, r, rt*2+1);
}
tree[rt].s=tree[rt*2].s+tree[rt*2+1].s;
} LL query(int l, int r, int rt)
{
if(tree[rt].l==l && tree[rt].r==r)
return tree[rt].s;
int mid=(tree[rt].l+tree[rt].r)/2;
if(r<=mid) return query(l, r, rt*2);
else if(l>mid) return query(l, r, rt*2+1);
else
{
LL x=query(l, mid, rt*2);
LL y=query(mid+1, r, rt*2+1);
return x+y;
}
} int main()
{
int n, m, op, a, b, cas=1; while(~scanf("%d", &n))
{
for(int i=1; i<=n; i++)
scanf("%I64d", &A[i]);
scanf("%d", &m);
build(1, n, 1);
printf("Case #%d:\n", cas++);
while(m--)
{
scanf("%d%d%d", &op, &a, &b);
if(a>b)
swap(a, b);//记住a可能大于b,就这个错误,我交了n次,都是RE
if(op==0)
update(a, b, 1);
else
printf("%I64d\n", query(a, b, 1));
}
printf("\n");
}
return 0;
}

线段树 hdu 4027的更多相关文章

  1. bzoj 3038: 上帝造题的七分钟2 线段树||hdu 4027

    3038: 上帝造题的七分钟2 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 1066  Solved: 476[Submit][Status][Dis ...

  2. 主席树[可持久化线段树](hdu 2665 Kth number、SP 10628 Count on a tree、ZOJ 2112 Dynamic Rankings、codeforces 813E Army Creation、codeforces960F:Pathwalks )

    在今天三黑(恶意评分刷上去的那种)两紫的智推中,突然出现了P3834 [模板]可持久化线段树 1(主席树)就突然有了不详的预感2333 果然...然后我gg了!被大佬虐了! hdu 2665 Kth ...

  3. 最大矩阵覆盖权值--(静态连续最大子段 (线段树) )-HDU(6638)Snowy Smile

    这题是杭电多校2019第六场的题目 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6638 题意:给你平面上n个点,每个点都有权值(有负权),让你计算一 ...

  4. 敌兵布阵(线段树HDU 1166)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi ...

  5. HDU 6464 权值线段树 && HDU 6468 思维题

    免费送气球 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  6. 区间第k大问题 权值线段树 hdu 5249

    先说下权值线段树的概念吧 权值平均树 就是指区间维护值为这个区间内点出现次数和的线段树 用这个加权线段树 解决第k大问题就很方便了 int query(int l,int r,int rt,int k ...

  7. 线段树 HDU 3397(真)

    5 种操作  0 1 然后 异或 似乎这种2个更新的先后每次都搞不清 覆盖有覆盖就可以不异或 也不知道为什么 #include<stdio.h> #include<string.h& ...

  8. 线段树 HDU 3397

    5种操作 具体看代码 #include<iostream> #include<stdio.h> #include<string.h> #include<alg ...

  9. 线段树 HDU 3308

    t 题目大意:给你n个数,m个操作.操作有两种:1.U x y 将数组第x位变为y   2. Q x y 问数组第x位到第y位连续最长子序列的长度.对于每次询问,输出一个答案 #include< ...

  10. 二维线段树 HDU 1823最简单的入门题

    xiaoz 征婚,首先输入M,表示有M个操作. 借下来M行,对每一行   Ih a l     I 表示有一个MM报名,H是高度, a是活泼度,L是缘分. 或   Q h1 h2 a1 a2    求 ...

随机推荐

  1. C# 获取系统DPI缩放比例以及分辨率大小

    一般方法 System.Windows.Forms.Screen类 // 获取当前主屏幕分辨率 int screenWidth = Screen.PrimaryScreen.Bounds.Width; ...

  2. C++ Qt开发:ProgressBar进度条组件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍Progres ...

  3. 手把手教你用python做一个年会抽奖系统

    引言 马上就要举行年会抽奖了,我们都不知道是否有人能够中奖.我觉得无聊的时候可以尝试自己写一个抽奖系统,主要是为了娱乐.现在人工智能这么方便,写一个简单的代码不是一件困难的事情.今天我想和大家一起构建 ...

  4. ez_curl【代码审计】

    ez_curl[代码审计][难度:4] 题目描述 代码审计类题目,附上代码: <?php highlight_file(__FILE__); $url = 'http://back-end:30 ...

  5. bash shell笔记整理——stat命令

    stat命令的作用 stat主要用于查看文件的详细信息,包括access time(atime).modify time(mtime).change time.权限.属主.属组等信息 atime:只有 ...

  6. 华企盾DSC服务器无法启动常见处理方法

    先查看<服务问题判断>文档.常见的 1.授权已经过期--需延长授权 2.ERR_BASE64 – 机器码变更 3.不能在该计算机上使用该数据库,需要解锁才可以--打开服务器配置解锁数据库 ...

  7. 万界星空科技服装行业mes解决方案

      服装行业MES特色 企业透过全球供应链网络掌握实时的订单进度信息来实现电子商务排除生产现场自动化"孤岛",建立起业务计划层到控制层的桥梁,JIT库存管理与看板管理.精益生产与敏 ...

  8. pycharm配置git关联Gitee远程仓库

    File-->Settins-->Version Control-->Git,点Test自动识别本地git安装路径 安装Gitee插件,重启pycharm 在Git下关联远程仓库链接 ...

  9. [BUG]自定义登录引发的配置加载问题-bugspringsecurity

    title: [BUG]自定义登录引发的配置加载问题 date: 2021-12-10 16:43:36.311 updated: 2021-12-27 19:10:16.773 url: https ...

  10. 『Flutter』开发环境搭建

    1.前言 大家好,我是 BNTang,今天给大家介绍一下 Flutter 的开发环境搭建.在之前我已经将 Dart 的基本语法给大家介绍了,所以今天就不再介绍 Dart 的基本语法了,直接进入 Flu ...