hdu 1166(树状数组 或 线段树)
线段树 (本题无需建树,少了很多)
#include<cstdio>
#include<cstring>
int sum[5000005],rt,data,lb,rb,n,m;
void add(int p,int l,int r,int now)//data新加的数 第p个位置 第now个子树
{
sum[now]+=data;
if(l==r) return;
int mid=(l+r)/2;
if(p<=mid) add(p,l,mid,2*now);
else add(p,mid+1,r,2*now+1);
}
int query(int l,int r,int now)
{
int mid=(l+r)/2;
if(lb<=l&&rb>=r) return(sum[now]);
if(rb<=mid) return(query(l,mid,2*now));
else if(lb>mid) return(query(mid+1,r,2*now+1));
else return(query(l,mid,2*now)+query(mid+1,r,2*now+1));
}
int main()
{
int t,tt,i,j;
char s[100];
scanf("%d",&t);
for(tt=1;tt<=t;tt++){
scanf("%d",&n);
printf("Case %d:\n",tt);
memset(sum,0,sizeof(sum));
for(i=1;i<=n;i++){
scanf("%d",&data);
add(i,1,n,1);
}
while(1){
scanf("%s",&s);
if(s[0]=='E') break; else scanf("%d%d",&i,&j);
switch(s[0]){
case 'A':data=j;add(i,1,n,1);break;
case 'S':data=-j;add(i,1,n,1);break;
case 'Q':lb=i;rb=j;printf("%d\n",query(1,n,1));break;
}
}
}
return 0;
}
简单的树状数组
先给个经典图片
#include<iostream>
#include<cstdio>
#include<cstring>
int n,a[50005];
int lowbit(int a)
{
return(a&(-a));
}
void add(int p,int q)
{
for(int i=q;i<=n;i+=lowbit(i))
a[i]+=p;
}
int sum(int q)
{
int ans=0;
for(int i=q;i>0;i-=lowbit(i))
ans+=a[i];
return(ans);
}
int main()
{
int t,tt,i,j,k;
char s[100];
scanf("%d",&t);
for(tt=1;tt<=t;tt++){
scanf("%d",&n);
printf("Case %d:\n",tt);
memset(a,0,sizeof(a));
for(i=1;i<=n;i++){
scanf("%d",&k);
add(k,i);
}
while(1){
scanf("%s",&s);
if(s[0]=='E') break; else scanf("%d%d",&i,&j);
switch(s[0]){
case 'A':add(j,i);break;
case 'S':add(-j,i);break;
case 'Q':printf("%d\n",sum(j)-sum(i-1));break;
}
}
}
return 0;
}
hdu 1166(树状数组 或 线段树)的更多相关文章
- HDU 5618 Jam's problem again(三维偏序,CDQ分治,树状数组,线段树)
Jam's problem again Time Limit: 5000/2500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- HDU 5877 2016大连网络赛 Weak Pair(树状数组,线段树,动态开点,启发式合并,可持久化线段树)
Weak Pair Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Tota ...
- bzoj 3110: [Zjoi2013]K大数查询 树状数组套线段树
3110: [Zjoi2013]K大数查询 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1384 Solved: 629[Submit][Stat ...
- [BZOJ 3196] 213平衡树 【线段树套set + 树状数组套线段树】
题目链接:BZOJ - 3196 题目分析 区间Kth和区间Rank用树状数组套线段树实现,区间前驱后继用线段树套set实现. 为了节省空间,需要离线,先离散化,这样需要的数组大小可以小一些,可以卡过 ...
- [BZOJ 1901] Dynamic Rankings 【树状数组套线段树 || 线段树套线段树】
题目链接:BZOJ - 1901 题目分析 树状数组套线段树或线段树套线段树都可以解决这道题. 第一层是区间,第二层是权值. 空间复杂度和时间复杂度均为 O(n log^2 n). 线段树比树状数组麻 ...
- POJ 1195 Mobile phones (二维树状数组或线段树)
偶然发现这题还没A掉............速速解决了............. 树状数组和线段树比较下,线段树是在是太冗余了,以后能用树状数组还是尽量用......... #include < ...
- 【BZOJ3196】二逼平衡树(树状数组,线段树)
[BZOJ3196]二逼平衡树(树状数组,线段树) 题面 BZOJ题面 题解 如果不存在区间修改操作: 搞一个权值线段树 区间第K大--->直接在线段树上二分 某个数第几大--->查询一下 ...
- BZOJ.4553.[HEOI2016&TJOI2016]序列(DP 树状数组套线段树/二维线段树(MLE) 动态开点)
题目链接:BZOJ 洛谷 \(O(n^2)\)DP很好写,对于当前的i从之前满足条件的j中选一个最大值,\(dp[i]=d[j]+1\) for(int j=1; j<i; ++j) if(a[ ...
- P3157 [CQOI2011]动态逆序对(树状数组套线段树)
P3157 [CQOI2011]动态逆序对 树状数组套线段树 静态逆序对咋做?树状数组(别管归并QWQ) 然鹅动态的咋做? 我们考虑每次删除一个元素. 减去的就是与这个元素有关的逆序对数,介个可以预处 ...
- BZOJ 1901 Zju2112 Dynamic Rankings 树状数组套线段树
题意概述:带修改求区间第k大. 分析: 我们知道不带修改的时候直接上主席树就可以了对吧?两个版本号里面的节点一起走在线段树上二分,复杂度是O((N+M)logN). 然而这里可以修改,主席树显然是凉了 ...
随机推荐
- centos6.4下安装freetds使php支持mssql
centos版本:6.4 php版本5.3.17 没有安装之前的情况:nginx+php+mysql+FPM-FCGI 接下来安装步骤如下: 1.打开http://www.freetds.org/,进 ...
- Python学习_从文件读取数据和保存数据
运用Python中的内置函数open()与文件进行交互 在HeadFirstPython网站中下载所有文件,解压后以chapter 3中的“sketch.txt”为例: 新建IDLE会话,首先导入os ...
- Mac下使用sublime text 2开发Python
入门虽易, 熟练不易, 且行且珍惜 简介:这只是简单介绍一个好的文本工具sublime text的使用,如果要获得详细的教程可以去看这本书<Sublime Productivity>和一些 ...
- 使用saltstack批量部署服务器运行环境事例——批量部署nagios客户端
之前关于搭建web服务器集群实验的这篇文章http://www.cnblogs.com/cjyfff/p/3553579.html中,关于如何用saltstack批量部署服务器这一点当时没有记录到文章 ...
- .htaccess 设置
RewriteEngine on RewriteCond %{HTTP_HOST} ^blog.chosenet.com$RewriteCond %{REQUEST_URI} !^/blog/Rew ...
- [译] ASP.NET 生命周期 – ASP.NET 上下文对象(七)
使用 HttpRequest 对象 HttpRequest 对象描述的是一个正在被处理的 HTTP 请求.下表列举了 HttpRequest 中的属性,它们提供了当前请求的相关信息(HttpReque ...
- C#...何时需要重写ToString()方法?
一般类型,都是继承自System.Object类,默认情况下,object类的ToString方法会返回当前类的类型的字符串表达形式.但也有例外!! DateTime,它就重写ToString方法,D ...
- 实战开发中UI资源制作标准
资源制作标准设定建议 1.所有的UI资源全部采用PNG导出 因为Unity不支持外部压缩,所以,不论是用PNG还是JPG,只要尺寸相同,资源量在引擎中都会是一样大.所以,可以大胆地采用PNG进行输出, ...
- 1972: [Sdoi2010]猪国杀 - BZOJ
题目太长,我只发链接吧 wikioi(排版看起来舒服一点):http://www.wikioi.com/problem/1834/ bzoj:http://www.lydsy.com:808/Judg ...
- struts2+hibernate-jpa+Spring+maven 整合(2)
1.修改pom.xml 1. 添加 slf4j-api <dependency> <groupId>org.slf4j</groupId> <artifac ...