http://acm.hdu.edu.cn/showproblem.php?pid=1892&&二维树状数组
来源:互联网 发布:折800软件怎么样 编辑:程序博客网 时间:2024/04/30 06:40
二维树状数组,,,,今天长见识了。。。
这一题题意:对一个矩形框的书进行,插入,挪动,删除。。。。
#include<cstdio>#include<algorithm>#include<string.h>#include<iostream>using namespace std;#define N 1005int s[N][N];int lowbit(int x){return x&(-x);}void update(int x,int y,int v){ for(int i=x;i<N;i+=lowbit(i)) for(int j=y;j<N;j+=lowbit(j)) s[i][j]+=v;}int Quary(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+=s[i][j]; return sum;}int main(){ int T; scanf("%d",&T); for(int k=1;k<=T;++k) { printf("Case %d:\n",k); int n; scanf("%d",&n); char ch[10]; int a,b,c,d,e; memset(s,0,sizeof(s)); for(int i=1;i<N;++i) for(int j=1;j<N;++j) update(i,j,1); while(n--) { scanf("%s",ch); if(ch[0]=='A'){ scanf("%d%d%d",&a,&b,&c); update(a+1,b+1,c);}else if(ch[0]=='D'){ scanf("%d%d%d",&a,&b,&c); int v=Quary(a+1,b+1)-Quary(a+1,b)-Quary(a,b+1)+Quary(a,b);if(v<c) c=v; update(a+1,b+1,-c);}else if(ch[0]=='M'){ scanf("%d%d%d%d%d",&a,&b,&c,&d,&e); int v=Quary(a+1,b+1)-Quary(a+1,b)-Quary(a,b+1)+Quary(a,b); if(v<e) e=v; update(a+1,b+1,-e); update(c+1,d+1,e);}else if(ch[0]=='S'){ scanf("%d%d%d%d",&a,&b,&c,&d); if(a>c) swap(a,c);if(b>d) swap(b,d); int res=Quary(c+1,d+1)-Quary(a,d+1)-Quary(c+1,b)+Quary(a,b);printf("%d\n",res);} } }return 0;}
- http://acm.hdu.edu.cn/showproblem.php?pid=1892&&二维树状数组
- http://acm.hdu.edu.cn/showproblem.php?pid=2642&&二维树状数组
- http://acm.hdu.edu.cn/showproblem.php?pid=3015 树状数组
- http://acm.hdu.edu.cn/showproblem.php?pid=2852&&树状数组+二分
- 树状数组&&http://acm.hdu.edu.cn/showproblem.php?pid=1556
- http://acm.hdu.edu.cn/showproblem.php?pid=2227&&树状数组+离散化+dp
- http://acm.hdu.edu.cn/showproblem.php?pid=2688&&树状数组求正序数
- http://acm.hdu.edu.cn/showproblem.php?pid=1005
- http://acm.hdu.edu.cn/showproblem.php?pid=1333
- http://acm.hdu.edu.cn/showproblem.php?pid=2710
- http://acm.hdu.edu.cn/showproblem.php?pid=2866
- http://acm.hdu.edu.cn/showproblem.php?pid=1041
- http://acm.hdu.edu.cn/showproblem.php?pid=1719
- http://acm.hdu.edu.cn/showproblem.php?pid=2136
- http://acm.hdu.edu.cn/showproblem.php?pid=1166
- http://acm.hdu.edu.cn/showproblem.php?pid=3519
- http://acm.hdu.edu.cn/showproblem.php?pid=2446
- http://acm.hdu.edu.cn/showproblem.php?pid=1709
- Page Rank介绍
- 如何在VMware中实现Linux系统与Windows系统的文件交换
- 收集 V4L2 程序编写
- 第二周实验报告1
- 理解WebKit和Chromium: WebKit和Chromium组成
- http://acm.hdu.edu.cn/showproblem.php?pid=1892&&二维树状数组
- pdf转swf的Java实现,可用于实现类似百度文库的效果
- MyEclipse 8.6快捷键
- Java Object类中方法理解
- 应聘华为的朋友小心了,应聘华为的悲惨遭遇!
- 填充DataGridView
- 求两个二维矩阵的root mean square(matlab程序)
- 数据挖掘—概念学习Candidate-Elimination算法的C++实现
- Windows Phone开发(11):常用控件(下)