POJ 1195-Mobile phones-二维树状数组
2016-03-15 22:18
459 查看
二维树状数组裸题
#include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int maxn =1024+10; int c[maxn][maxn]; int N; int lowbit(int x) { return x&(-x); } void update(int x,int y,int d) { for(int i=x;i<=N;i+=lowbit(i)) for(int j=y;j<=N;j+=lowbit(j)) c[i][j] += d; } int getsum(int x,int y) { int res = 0; for(int i=x;i>0;i -= lowbit(i)) for(int j=y;j>0;j -= lowbit(j)) res += c[i][j]; return res; } int query(int l,int r,int u,int d) { return getsum(r,u) - getsum(r,d-1) - getsum(l-1,u) + getsum(l-1,d-1); } int main() { int op; int x,y,l,r,u,d; while(~scanf("%d",&op)) { if(op == 0) { scanf("%d",&N); memset(c,0,sizeof c); } else if(op == 1) { scanf("%d%d%d",&x,&y,&u); update(x+1,y+1,u); } else if(op == 2) { scanf("%d%d%d%d",&l,&d,&r,&u); printf("%d\n",query(l+1,r+1,u+1,d+1)); } else if(op == 3) { break; } } }
相关文章推荐
- C++扬帆远航——4(百钱百鸡)
- excel通过sqlldr导入到oracle数据库
- substr(), substring(), slice()用法及区别
- ioS 页面与页面之间传参数的方法 代理传值
- POJ 2352-Stars-树状数组
- uva201(poj2445) Squares(模拟)
- MySQL的主从复制与读写分离技术实例(一)主从复制
- Collider(碰撞器与触发器)
- struts2中三种参数传递问题
- PHP高效率写法(详解原因)
- 转载:LBP的初步理解
- JSON & XML 简析
- HDU3081 Marriage Match II(最大流)
- POJ 3067-Japan-树状数组
- LeetCode 258. Add Digits
- 2016年3月14日作业第四章:项目管理一般知识
- socket实现一对一通讯
- Hbase的shell命令
- Linux(一)简单命令
- Android 类似淘宝 电商 搜索功能,监听软键盘搜索事件,延迟自动搜索,以及时间排序的搜索历史记录的实现