标签:des style blog java color strong
Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 3485 Accepted Submission(s): 1103
1 #include <stdio.h> 2 #include <string.h> 3 #include <algorithm> 4 #define N 1005 5 using namespace std; 6 7 int map[N+1][N+1]; 8 9 10 int lowbit(int x) 11 { 12 return x&(-x); 13 } 14 15 void update(int x,int y,int val) 16 { 17 int i, j; 18 for(i=x;i<=N;i+=lowbit(i)) 19 for(j=y;j<=N;j+=lowbit(j)) 20 map[i][j]+=val; 21 } 22 23 24 int query(int x,int y) 25 { 26 int sum=0; 27 for(int i=x;i>0;i-=lowbit(i)) 28 for(int j=y;j>0;j-=lowbit(j)) 29 sum+=map[i][j]; 30 return sum; 31 } 32 33 int getnode(int x,int y) 34 { 35 return query(x,y)-query(x-1,y)-query(x,y-1)+query(x-1,y-1); 36 } 37 38 main() 39 { 40 int t, i, j, k=1, m; 41 char s[5]; 42 int x1, y1, x2, y2, n1, n; 43 scanf("%d",&t); 44 while(t--) 45 { 46 printf("Case %d:\n",k++); 47 scanf("%d",&m); 48 memset(map,0,sizeof(map)); 49 50 for(i=1;i<=N;i++) 51 { 52 for(j=1;j<=N;j++) 53 update(i,j,1); 54 55 } 56 57 while(m--) 58 { 59 scanf("%s",s); 60 61 if(strcmp(s,"S")==0){ 62 scanf("%d %d %d %d",&x1,&y1,&x2,&y2); 63 64 if(x1>x2) swap(x1,x2); 65 if(y1>y2) swap(y1,y2); 66 67 int ans=query(x2+1,y2+1)-query(x1,y2+1)-query(x2+1,y1)+query(x1,y1); 68 printf("%d\n",ans); 69 } 70 if(strcmp(s,"A")==0){ 71 scanf("%d %d %d",&x1,&y1,&n1); 72 update(x1+1,y1+1,n1); 73 } 74 if(strcmp(s,"D")==0){ 75 scanf("%d %d %d",&x1,&y1,&n1); 76 n=getnode(x1+1,y1+1); 77 n=min(n,n1); 78 update(x1+1,y1+1,-n); 79 } 80 if(strcmp(s,"M")==0){ 81 scanf("%d %d %d %d %d",&x1,&y1,&x2,&y2,&n1); 82 n=getnode(x1+1,y1+1); 83 n=min(n,n1); 84 update(x1+1,y1+1,-n); 85 update(x2+1,y2+1,n); 86 } 87 } 88 } 89 }
HDU 1892 二维树状数组,布布扣,bubuko.com
标签:des style blog java color strong
原文地址:http://www.cnblogs.com/qq1012662902/p/3847748.html