标签:des style blog http color os strong io
Description
Input
Output
Sample Input
0 4 1 1 2 3 2 0 0 2 2 1 1 1 2 1 1 2 -1 2 1 1 2 3 3
Sample Output
3 4
二维树状数组模板题
1 #include<iostream> 2 #include<string> 3 #include<cstdio> 4 #include<vector> 5 #include<queue> 6 #include<stack> 7 #include<algorithm> 8 #include<cstring> 9 #include<stdlib.h> 10 #include<string> 11 #include<cmath> 12 using namespace std; 13 #define pb push_back 14 int s; 15 int p[1026][1026]; 16 void update(int posx,int posy,int num){ 17 while(posx>=1){ 18 int tmp=posy; 19 while(tmp>=1){ 20 p[posx][tmp]+=num; 21 tmp-=tmp&(-tmp); 22 } 23 posx-=posx&(-posx); 24 } 25 } 26 int getnum(int posx,int posy){ 27 int sum=0; 28 while(posx<=s){ 29 int tmp=posy; 30 while(tmp<=s){ 31 sum+=p[posx][tmp]; 32 tmp+=tmp&(-tmp); 33 } 34 posx+=posx&(-posx); 35 } 36 return sum; 37 } 38 int main(){ 39 int t; 40 while(cin>>t&&t!=3){ 41 int a,b,c,d; 42 if(t==0){ 43 scanf("%d",&s); 44 memset(p,0,sizeof(p)); 45 continue; 46 } 47 if(t==1){ 48 scanf("%d%d%d",&a,&b,&c); 49 a++,b++; 50 update(a,b,c); 51 } 52 if(t==2){ 53 scanf("%d%d%d%d",&a,&b,&c,&d); 54 a++,b++,c++,d++; 55 int sum=getnum(a,b)+getnum(c+1,d+1)-getnum(c+1,b)-getnum(a,d+1); 56 printf("%d\n",sum); 57 } 58 } 59 }
poj 1195 Mobile phones,布布扣,bubuko.com
标签:des style blog http color os strong io
原文地址:http://www.cnblogs.com/ainixu1314/p/3888905.html