博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu1892(二维树状数组)
阅读量:6336 次
发布时间:2019-06-22

本文共 3035 字,大约阅读时间需要 10 分钟。

 

1 #include
2 using namespace std; 3 int a[1010][1010],c[1010][1010],n=1005; 4 int lowbit(int x) 5 { 6 return x&(-x); 7 } 8 int sum(int x,int y) 9 { 10 int i,j,sum=0; 11 for(i=x;i>0;i-=lowbit(i)) 12 { 13 for(j=y;j>0;j-=lowbit(j)) 14 { 15 sum+=c[i][j]; 16 } 17 } 18 return sum; 19 } 20 void inster(int x,int y,int z) 21 { 22 int i,j; 23 for(i=x;i<=n;i+=lowbit(i)) 24 { 25 for(j=y;j<=n;j+=lowbit(j)) 26 { 27 c[i][j]+=z; 28 } 29 } 30 } 31 int main() 32 { 33 int x1,y1,x2,y2,t,m,i,j,n1,f=0; 34 scanf("%d",&t); 35 while(t--) 36 { 37 printf("Case %d:\n",++f); 38 memset(a,0,sizeof(a)); 39 memset(c,0,sizeof(c)); 40 for(i=1;i<=n;i++) 41 for(j=1;j<=n;j++) 42 { 43 a[i][j]=1; 44 inster(i,j,1); 45 } 46 scanf("%d",&m); 47 while(m--) 48 { 49 char s; 50 getchar(); 51 s=getchar(); 52 if(s=='S') 53 { 54 scanf("%d%d%d%d",&x1,&y1,&x2,&y2); 55 x1++;x2++;y1++;y2++; 56 if(x1>x2) 57 swap(x1,x2); 58 if(y1>y2) 59 swap(y1,y2); 60 printf("%d\n",sum(x2,y2)-sum(x2,y1-1)-sum(x1-1,y2)+sum(x1-1,y1-1)); 61 } 62 else 63 if(s=='A') 64 { 65 scanf("%d%d%d",&x1,&y1,&n1); 66 x1++;y1++; 67 inster(x1,y1,n1); 68 a[x1][y1]+=n1; 69 } 70 else 71 if(s=='D') 72 { 73 scanf("%d%d%d",&x1,&y1,&n1); 74 x1++;y1++; 75 if(n1>a[x1][y1]) 76 n1=a[x1][y1]; 77 inster(x1,y1,-n1); 78 a[x1][y1]-=n1; 79 } 80 else 81 if(s=='M') 82 { 83 scanf("%d %d %d %d %d",&x1,&y1,&x2,&y2,&n1); 84 x1++;y1++;x2++;y2++; 85 if(a[x1][y1]>=n1) 86 { 87 a[x1][y1]-=n1; 88 inster(x1,y1,-n1); 89 inster(x2,y2,n1); 90 a[x2][y2]+=n1; 91 } 92 else 93 { 94 inster(x1,y1,-a[x1][y1]); 95 inster(x2,y2,a[x1][y1]); 96 a[x2][y2]+=a[x1][y1]; 97 a[x1][y1]=0; 98 } 99 }100 }101 102 }103 return 0;104 }105

 

 

 

转载地址:http://upxoa.baihongyu.com/

你可能感兴趣的文章
FFMPEG中关于ts流的时长估计的实现(转)
查看>>
Java第三次作业
查看>>
【HDOJ 3652】B-number
查看>>
android代码混淆笔记
查看>>
Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) C. String Reconstruction 并查集
查看>>
BMP文件的读取与显示
查看>>
Flash文字效果
查看>>
各种排序算法总结篇(高速/堆/希尔/归并)
查看>>
使用c#訪问Access数据库时,提示找不到可安装的 ISAM
查看>>
Highcharts X轴纵向显示
查看>>
windows 注册表讲解
查看>>
【算法】论平衡二叉树(AVL)的正确种植方法
查看>>
基于DDD的现代ASP.NET开发框架--ABP系列之1、ABP总体介绍
查看>>
react 从零开始搭建开发环境
查看>>
scala recursive value x$5 needs type
查看>>
ps -ef |grep 输出的具体含义
查看>>
markdown编辑
查看>>
ASCII 在线转换器
查看>>
Linux内核同步:RCU
查看>>
Android逆向进阶——让你自由自在脱壳的热身运动(dex篇)
查看>>