【杭电】[1166]敌兵布阵
来源:互联网 发布:国内gis软件 编辑:程序博客网 时间:2024/06/01 23:19
线段数组的应用
很神奇的一个算法
应用于单点修改和区间求和
先记住吧……
#include<stdio.h>#include<string.h>int a[50200];int n;void add(int k,int m) { while(k<=n) { a[k]+=m; k+=k&-k; }}int res(int k) { int sum=0; while(k) { sum+=a[k]; k-=k&-k; } return sum;}int main() { int T,kase=0; scanf("%d",&T); while(T--) { memset(a,0,sizeof(a)); printf("Case %d:\n",++kase); scanf("%d",&n); for(int i=1; i<=n; i++) { int t; scanf("%d",&t); add(i,t); } char s[10]; while(scanf("%s",s),s[0]!='E') { int x,y; scanf("%d %d",&x,&y); if(s[0]=='Q') printf("%d\n",res(y)-res(x-1)); else if(s[0]=='A') add(x,y); else if(s[0]=='S') add(x,-y); } } return 0;}
题目地址:【杭电】[1166]敌兵布阵
0 0
- 杭电1166敌兵布阵
- 杭电1166敌兵布阵
- 杭电 1166 敌兵布阵
- 杭电1166敌兵布阵
- 【杭电】[1166]敌兵布阵
- 【杭电1166】敌兵布阵
- 杭电ACM--敌兵布阵(1166)
- 杭电 1166敌兵布阵(线段树)
- 杭电oj-1166-敌兵布阵
- 【杭电oj1166】敌兵布阵
- 【树状数组 + 简单题】杭电 hdu 1166 敌兵布阵
- 【线段树 + 简单题】杭电 hdu 1166 敌兵布阵
- 杭电hdu 1166 敌兵布阵 线段树
- 杭电1166 敌兵布阵 线段树and树状数组
- 杭电1166敌兵布阵 (用的树状数组)
- 杭电 1166 敌兵布阵(线段树求和)
- 敌兵布阵(杭电1166)(树状数组)
- 杭电 HDU ACM 1166 敌兵布阵(树状数组)
- 在Xcode 6.2中遇到Your build settings specify a provisioning profile with the UUID, no provisioning prof
- iOS判断一个字符是不是数字
- 图片透明到状态栏的方法
- matlab练习程序(结构张量structure tensor)
- 安卓开发——Android studio怎么使用列选择模式
- 【杭电】[1166]敌兵布阵
- Fiddler2用于手机抓包时的配置方法
- OC
- codeforces 650C (并查集)
- UVA 839(DFS)
- HDU 1004 Let the Balloon Rise (字符统计)
- docker入门之HelloWorld
- 配置apache虚拟主机
- 阶梯博弈(Stair Nim)