poj 1195 Mobile phones
来源:互联网 发布:凸包问题的分治算法 编辑:程序博客网 时间:2024/06/04 18:15
点击打开链接poj 1195
思路: 二维树状数组
分析:
1 给定一个矩阵和三种操作 1 a b x表示把[a,b]值加上x,2 L B R T表示L <= x <= R , B <= y <= T
求这个小矩形的面积 3表示输入结束
2 简单的二维树状数组,但是这边要注意的是操作2的时候一定不能够把维度给弄反了,L R表示的是x的范围而B T表示
的是y的范围
3 题目还有一个trick就是当[a,b]加上x后如果值为负数,那么应该把值设为0
代码:
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int MAXN = 1030;int s;int num[MAXN][MAXN];long long treeNum[MAXN][MAXN];int lowbit(int x){ return x&(-x);}void add(int x , int y , int val){ if(num[x][y]+val < 0) val = -num[x][y]; num[x][y] += val; for(int i = x ; i < MAXN ; i += lowbit(i)) for(int j = y ; j < MAXN ; j += lowbit(j)) treeNum[i][j] += val; }long long getSum(int x , int y){ long long sum = 0; for(int i = x ; i > 0 ; i -= lowbit(i)) for(int j = y ; j > 0 ; j -= lowbit(j)) sum += treeNum[i][j]; return sum;}int main(){ int x , i , j , val; int l , r , u , d; while(scanf("%d%d" , &x , &s) != EOF){ memset(treeNum , 0 , sizeof(treeNum)); memset(num , 0 , sizeof(num)); while(scanf("%d" , &x) && x != 3){ if(x == 1){ scanf("%d%d%d" , &i , &j , &val); add(i+1 , j+1 , val); } else{ scanf("%d%d%d%d" , &u , &l , &d , &r); l++ , u++ , r++ , d++; long long sum = getSum(d , r); sum -= getSum(u-1 , r); sum -= getSum(d , l-1); sum += getSum(u-1 , l-1); printf("%lld\n" , sum); } } } return 0;}
- POJ 1195 Mobile phones
- poj 1195 Mobile phones
- poj 1195 Mobile phones
- poj 1195 mobile phones
- POJ 1195 Mobile phones
- Poj 1195 Mobile phones
- poj 1195 Mobile phones
- POJ 1195 Mobile phones
- POJ 1195 Mobile phones
- POJ 1195 Mobile phones
- POJ 1195 Mobile phones
- POJ 1195 Mobile phones
- poj 1195 Mobile phones
- poj 1195 Mobile phones
- POJ 1195 Mobile phones
- POJ 1195 Mobile Phones
- POJ 1195 Mobile phones
- POJ 1195 Mobile phones
- test
- 持续集成之Ant的使用
- SUG-UAP项目中配置文件解析
- uva 10085 The most distant state(八数码)
- 内存热插拔
- poj 1195 Mobile phones
- Tree.js
- 多态性复习
- URAL 1931 Excellent Team 解题报告
- oracle中特殊字符的模糊查询
- linux学习之----ubuntu12.04下载地址之一
- oracle 查看用户表,存储过程,触发器,函数对象
- 飘逸的python - 不要用二进制模式打开文本文件
- JavaScript 框架比较