poj 1195 Mobile phones
2012-10-05 20:18
393 查看
题解:
标准的二维数状数组
标准的二维数状数组
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int tree[1300][1300]; int s; inline int lowbit(int x) { return x&(-x); } void add(int x,int y,int c) { for(int i=x;i<=s;i+=lowbit(i)) for(int j=y;j<=s;j+=lowbit(j)) tree[i][j]+=c; } int query(int x,int y) { int sum=0; for(int i=x;i>0;i-=lowbit(i)) for(int j=y;j>0;j-=lowbit(j)) sum+=tree[i][j]; return sum; } int main() { while(1) { int k; scanf("%d",&k); if(k==3)break; switch(k) { case 0: { scanf("%d",&s); memset(tree,0,sizeof(tree)); break; } case 1: { int x,y;int a; scanf("%d%d%d",&x,&y,&a); x++;y++; add(x,y,a);break; } case 2: { int x1,y1,x2,y2; scanf("%d%d%d%d",&x1,&y1,&x2,&y2); x1++;y1++;x2++;y2++; int ans=query(x2,y2)-query(x2,y1-1)-query(x1-1,y2)+query(x1-1,y1-1); printf("%d\n",ans); break; } default:break; } } return 0; }
相关文章推荐
- POJ 1195 Mobile phones
- poj1195 Mobile phones 二维树状数组
- POJ 1195 Mobile phones
- POJ 1195 Mobile phones 笔记
- POJ1195-Mobile phones
- Mobile phones poj 1195
- poj 1195 mobile phones
- 【原】 POJ 1195 Mobile phones 2D树状数组 解题报告
- POJ 1195 Mobile phones
- poj1195 Mobile phones
- POJ 1195 Mobile phones
- POJ-1195 Mobile phones 二维树状数组
- poj 1195 Mobile phones
- POJ_1195 Mobile phones 【二维树状数组】
- poj 1195 mobile phones 二维树状数组
- POJ 1195 Mobile phones
- 二维树状数组 —— POJ 1195 Mobile phones
- 【POJ 1195】Mobile phones
- POJ 1195 Mobile phones 二维树状数组
- POJ1195 Mobile phones