线段树 hdu 4027
***又是超时的问题,当一个区间全是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的更多相关文章
- bzoj 3038: 上帝造题的七分钟2 线段树||hdu 4027
3038: 上帝造题的七分钟2 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 1066 Solved: 476[Submit][Status][Dis ...
- 主席树[可持久化线段树](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 ...
- 最大矩阵覆盖权值--(静态连续最大子段 (线段树) )-HDU(6638)Snowy Smile
这题是杭电多校2019第六场的题目 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6638 题意:给你平面上n个点,每个点都有权值(有负权),让你计算一 ...
- 敌兵布阵(线段树HDU 1166)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi ...
- HDU 6464 权值线段树 && HDU 6468 思维题
免费送气球 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- 区间第k大问题 权值线段树 hdu 5249
先说下权值线段树的概念吧 权值平均树 就是指区间维护值为这个区间内点出现次数和的线段树 用这个加权线段树 解决第k大问题就很方便了 int query(int l,int r,int rt,int k ...
- 线段树 HDU 3397(真)
5 种操作 0 1 然后 异或 似乎这种2个更新的先后每次都搞不清 覆盖有覆盖就可以不异或 也不知道为什么 #include<stdio.h> #include<string.h& ...
- 线段树 HDU 3397
5种操作 具体看代码 #include<iostream> #include<stdio.h> #include<string.h> #include<alg ...
- 线段树 HDU 3308
t 题目大意:给你n个数,m个操作.操作有两种:1.U x y 将数组第x位变为y 2. Q x y 问数组第x位到第y位连续最长子序列的长度.对于每次询问,输出一个答案 #include< ...
- 二维线段树 HDU 1823最简单的入门题
xiaoz 征婚,首先输入M,表示有M个操作. 借下来M行,对每一行 Ih a l I 表示有一个MM报名,H是高度, a是活泼度,L是缘分. 或 Q h1 h2 a1 a2 求 ...
随机推荐
- Cocos-JS HTTP网络请求
网络结构 网络结构是网络构建方式,目前流行的有客户端服务器结构(C/S结构)和点对点(P2P)结构网络. 客户端服务器结构(C/S结构) 这种结构又被称为Clicent/Server结构,它是一种主从 ...
- Pikachu漏洞靶场 Sql Inject(SQL注入)
SQLi 哦,SQL注入漏洞,可怕的漏洞. 文章目录 SQLi 数字型注入(post) 字符型注入(get) 搜索型注入 xx型注入 "insert/update"注入 inser ...
- UE5: UpdateOverlap - 从源码深入探究UE的重叠触发
前言 出于工作需要和个人好奇,本文对UE重叠事件更新的主要函数UpdateOverlaps从源码的角度进行了详细的分析,通过阅读源码,深入理解重叠事件是如何被触发和更新的. 解决问题 阅读本文,你将得 ...
- 文心一言 VS 讯飞星火 VS chatgpt (41)-- 算法导论5.4 5题
五.在大小为n的集合中,一个k字符串构成一个k排列的概率是多少?这个问题和生日悖论有什么关系? 文心一言: 在大小为n的集合中,一个k字符串构成一个k排列的概率是1/k!,这是由于排列的总数是k!,而 ...
- Git使用经验总结3-删除远端提交记录
目录 1. 问题 2. 解决方案 3. 参考 1. 问题 如果将有问题的代码提交到代码仓库甚至已经push到远端,这个时候就得想办法把提交撤销.一种方案是使用git revert,不过会造成历史记录留 ...
- SaaS 营销,如何利用 RPA 实现自动化获客?
大家好,这次给大家带来如何利用 RPA 实现自动化获客. 一.RPA 是什么?难吗? RPA 对大家来说,可能挺陌生的,其实它很简单. Robotic Process Automation(简称 RP ...
- 保护客户代码和应用安全,CodeArts有7招
摘要:华为CodeArts致力于各种措施与方案,确保用户研发资产的安全. 华为云有IAM统一认证.CodeArts原名"DevCloud"上每个项目均设有权限管理机制. CodeA ...
- LiteOS内核源码分析:任务栈信息
摘要:LiteOS任务栈是高地址向低地址生长的递减栈,栈指针指向即将入栈的元素位置. 我们介绍下LiteOS任务栈的基础概念.LiteOS任务栈是高地址向低地址生长的递减栈,栈指针指向即将入栈的元素位 ...
- MPU:鸿蒙轻内核的任务栈的溢出检察官
摘要:MPU(Memory Protection Unit,内存保护单元)把内存映射为一系列内存区域,定义这些内存区域的维洲,大小,访问权限和内存熟悉信息. 本文分享自华为云社区<鸿蒙轻内核M核 ...
- Kubernetes(K8S) 镜像拉取策略 imagePullPolicy
镜像仓库,镜像已更新,版本没更新, K8S 拉取后,还是早的服务,原因:imagePullPolicy 镜像拉取策略 默认为本地有了就不拉取,需要修改 [root@k8smaster ~]# kube ...