hdu 1166 树状数组模板题
#include<stdio.h>
#include<string.h>
#define N 51000
int c[N],n;
int number(int x) {
return x&-x;
}
void creat(int a,int x) {
int i;
for(i=a;i<=n;i+=number(i))
c[i]+=x;
}
int sum(int x) {
int h=0,i;
for(i=x;i>0;i-=number(i))
h+=c[i];
return h;
}
int bsum(int x,int y) {
return sum(y)-sum(x);
}
int main() {
int i,j,t,k,count=0;
char s[30];
scanf("%d",&t);
while(t--) {
scanf("%d",&n);
memset(c,0,sizeof(c));
for(i=1;i<=n;i++) {
scanf("%d",&k);
creat(i,k);
}
printf("Case %d:\n",++count);
while(scanf("%s",s),strcmp(s,"End")) {
if(s[0]=='Q') {
scanf("%d%d",&i,&j);
printf("%d\n",bsum(i-1,j));
}
else
if(s[0]=='A'){
scanf("%d%d",&i,&k);
creat(i,k);
}
else
if(s[0]=='S'){
scanf("%d%d",&i,&k);
creat(i,-k);
}
}
}
return 0;
}
最新文章
- java基本数据类型
- 在ArcGIS空间数据库中增加点数据的方法
- C和指针贴图
- highcharts 结合phantomjs纯后台生成图片
- hdu 4968 Improving the GPA (水 暴力枚举)
- 标准Web系统的架构分层[转]
- HDU1437+模拟
- 关于tomcat的clean
- 动态网页爬取例子(WebCollector+selenium+phantomjs)
- git stash用法
- Android学习笔记- ButterKnife 8.0注解使用介绍
- Spring装配Bean之XML装配bean
- JavaScript判断变量数据类型
- Python初体验
- print number
- ReentrantLock重入锁详解
- easyUI-datagrid带有工具栏和分页器的数据网格
- 使用RecyclerView设置自定义分割线
- redis安装详解
- scroll家族属性