BZOJ 3038 上帝造题的七分钟2 (并查集+树状数组)
题解:同 BZOJ 3211 花神游历各国,需要注意的是需要开long long,还有左右节点需要注意一下。
#include <cstdio>
#include <cmath>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
LL a[100005],c[100005];
int f[100005],n,m,op,l,r,t;
int sf(int x){return x==f[x]?x:f[x]=sf(f[x]);}
int update(int x,LL num){while(x<=n)c[x]+=num,x+=x&-x;}
LL sum(int x){LL s=0;while(x)s+=c[x],x-=x&-x;return s;}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)f[i]=i,scanf("%lld",&a[i]),update(i,a[i]);
scanf("%d",&m); f[n+1]=n+1;
for(int i=1;i<=m;i++){
scanf("%d%d%d",&op,&l,&r);
if(l>r)swap(l,r);
if(op==1)printf("%lld\n",(sum(r)-sum(l-1)));
else for(int j=l;j<=r;update(j,(t=(int)sqrt(a[j]))-a[j]),a[j]=t,
f[j]=(a[j]<=1)?j+1:j,j=(sf(j)==j?j+1:f[j]));
}
return 0;
}
BZOJ 3038 上帝造题的七分钟2 (并查集+树状数组)的更多相关文章
- TYVJ 1941 BZOJ3038 上帝造题的七分钟2  并查集+树状数组
		
背景 XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. 描述 "第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟,L说,要能修改,于是便有了对一段数中每个 ...
 - 洛谷P4145 上帝造题的七分钟2/花神游历各国 [树状数组,并查集]
		
题目传送门 题目背景 XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. 题目描述 "第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟,L说,要能修改,于是 ...
 - BZOJ 3038: 上帝造题的七分钟2
		
3038: 上帝造题的七分钟2 Description XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. "第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分 ...
 - BZOJ 3038: 上帝造题的七分钟2【线段树区间开方问题】
		
3038: 上帝造题的七分钟2 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 1469 Solved: 631[Submit][Status][Dis ...
 - bzoj 3038: 上帝造题的七分钟2 线段树||hdu  4027
		
3038: 上帝造题的七分钟2 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 1066 Solved: 476[Submit][Status][Dis ...
 - BZOJ 3038: 上帝造题的七分钟2 / BZOJ 3211: 花神游历各国 (线段树区间开平方)
		
题意 给出一些数,有两种操作.(1)将区间内每一个数开方(2)查询每一段区间的和 分析 普通的线段树保留修改+开方优化.可以知道当一个数为0或1时,无论开方几次,答案仍然相同.所以设置flag=1变表 ...
 - Bzoj3038 上帝造题的七分钟2 并查集
		
Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 1135 Solved: 509 Description XLk觉得<上帝造题的七分钟>不太 ...
 - BZOJ 3038 上帝造题的七分钟2 树状数组+并查集
		
题目大意:一个序列,有两种操作.1.将一段数中的每个数开根号.2.查询一段数的和. 思路:和3211是一个题,有兴趣的能够看看我的那篇博客. CODE: #include <cmath> ...
 - BZOJ 3038 上帝造题的七分钟二
		
无题目 但是百度会发现题目和3211基本一致 所以看上一篇博文的上一篇博文呢
 
随机推荐
- vsvim _vsvimrc 设置(转)
			
c_joewang的专栏 (转) vsvim安装到vs2010后可以使用绝大部分原生vim的编辑功能,包括宏录制,也可以通过配置设置键盘映射,关于支持的编辑功能等可以参考上面链接去查看相关文档. Vi ...
 - leetcode Contains Duplicate python
			
Given an array of integers, find if the array contains any duplicates. Your function should return t ...
 - 在Eclipse中使用Maven构建SpringMVC项目
			
环境搭建 安装JDK, Eclipse, Tomcat等 – 请参考网上常见攻略. 安装Maven: 下载需要的Maven 版本( http://maven.apache.org/download.c ...
 - R与数据分析旧笔记(十八完结) 因子分析
			
因子分析 因子分析 降维的一种方法,是主成分分析的推广和发展 是用于分析隐藏在表面现象背后的因子作用的统计模型.试图用最少的个数的不可测的公共因子的线性函数与特殊因子之和来描述原来观测的每一分量 因子 ...
 - 老旧Webkit浏览器行内元素0间距问题
			
有时我们希望display:inline-block的元素之间的天衣无缝.紧密相依,比如说如下的情情形: 一般情况下我们使用如下代码可以实现: .pageNav { font-size:; text- ...
 - C# 中使用Newtonsoft.Json 处理JSON数据 绝对能用
			
当你搜到这篇文章是幸运的,因为之前我遇到这个问题 主要是 Newtonsoft.Json 版本不一 且网上各种文章 都是复制的 并不说明版本的问题 这里我就不说什么版本的问题了,总之必须使用我这个DL ...
 - nyoj 21三个水杯(BFS + 栈)
			
题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=21 思想: 看了一下搜索就来写了这题(BFS 找出最短路径 所以用此来进行搜索) 这题在 ...
 - SSE && WebSockets
			
SSE && WebSockets 参考 http://www.bitscn.com/school/HTMLCSS/201402/194940.html WebSockets 定义了一 ...
 - SeaJS 简单试用
			
http://seajs.org/docs/#quick-start 感觉seajs的语法有点罗嗦... 它既有RequireJS的特点也有NodeJS引入模块的特点 例子是抄的官方的例子 在官方的 ...
 - python进阶4--pywin32
			
python 在windows下系统编程 1.环境配置:Python是没有自带访问windows系统API的库的,需要下载.库的名称叫pywin32,可以从网上直接下载. 以下链接地址可以下载: ht ...