poj_1195Mobile phones,二维树状数组
2014-09-05 20:11
387 查看
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int a[1300][1300]; int s; int lowbit(int x) { return x&(-x); } void add(int x,int y,int d) { for(int i=x;i<=s;i+=lowbit(i)) for(int j=y;j<=s;j+=lowbit(j)) a[i][j]+=d; } int sum(int x,int y) { int ret=0; for(int i=x;i>0;i-=lowbit(i)) for(int j=y;j>0;j-=lowbit(j)) ret+=a[i][j]; return ret; } int main() { while(scanf("%d%d",&s,&s)!=EOF) { memset(a,0,sizeof(a)); int n,x,y,d,xt,yt; while(scanf("%d",&n)) { if(n==3) break; if(n==1) { scanf("%d%d%d",&x,&y,&d); x++,y++; add(x,y,d); } if(n==2) { scanf("%d%d%d%d",&x,&y,&xt,&yt); x++,y++,xt++,yt++; int ans=sum(xt,yt)-sum(xt,y-1)-sum(x-1,yt)+sum(x-1,y-1); cout<<ans<<endl; } } } return 0; }
相关文章推荐
- POJ 1195 Mobile phones(二维树状数组,点修改,区间查询)
- POJ-1195-Mobile phones-裸二维树状数组(单点更新,矩阵求和)
- poj 1195 Mobile phones(二维的树状数组)得好好看。。。
- (简单) POJ 1195 Mobile phones,二维树状数组。
- POJ1195 Mobile phones(简单二维树状数组)
- POJ 1195 Mobile phones【二维树状数组】
- poj 1195 Mobile phones(二维树状数组基础)
- poj 1195:Mobile phones(二维树状数组,矩阵求和)
- POJ-1195 Mobile phones(二维树状数组裸题)
- poj1195 Mobile phones(二维树状数组单点更新)
- POJ 1195 Mobile phones【 二维树状数组 】
- POJ 1195-Mobile phones(二维树状数组-区间更新区间查询)
- POJ 1195 Mobile phones(二维树状数组,点修改,区间查询)
- POJ 1195 Mobile phones【二维树状数组】
- POJ1195 Mobile phones【树状数组】【二维】
- POJ 1195-Mobile phones-二维树状数组
- POJ 1195 (Mobile phones) 二维树状数组
- 文章标题 POJ 1195 :Mobile phones(二维树状数组 模板)
- poj_1195Mobile phones,二维树状数组
- poj 1195 Mobile phones(树状数组)