spoj 1029
来源:互联网 发布:英克软件多少钱 编辑:程序博客网 时间:2024/05/17 00:51
题目:https://www.spoj.pl/problems/MATSUM/
入门级二维树状数组。。其实二维和一维的思想差不多!
#include <cmath>#include <ctime>#include <iostream>#include <string>#include <vector>#include <cstdio>#include <cstdlib>#include <cstring>#include <queue>#include <map>#include <set>#include <algorithm>#include <cctype>#include <stack>#include <deque>using namespace std;typedef long long LL;#define EPS 10e-9#define INF 0x3f3f3f3f#define REP(i,n) for(int i=0; i<(n); i++)const int maxn = 1100;int c[maxn][maxn],ma[maxn][maxn];inline int lowbit(int x){ return x&-x;}void add(int x,int y,int num){ while(x<maxn){ int y1=y; while(y1<maxn){ c[x][y1]+=num; y1+=lowbit(y1); } x+=lowbit(x); }}int sum(int x,int y){ int ret=0; while(x>0){ int y1=y; while(y1>0){ ret+=c[x][y1]; y1-=lowbit(y1); } x-=lowbit(x); } return ret;}int main(){ int t,n; char str[10]; int x,y,num,x1,y1,x2,y2; scanf("%d",&t); while(t--){ scanf("%d",&n); memset(ma,0,sizeof(ma)); memset(c,0,sizeof(c)); while(1){ scanf("%s",str); if(strcmp(str,"END")==0) break; if(str[1]=='E'){ scanf("%d %d %d",&x,&y,&num); x++;y++; int temp=num-ma[x][y]; add(x,y,temp); ma[x][y]=num; } else{ scanf("%d %d %d %d",&x1,&y1,&x2,&y2); x1++;y1++; x2++;y2++; printf("%d\n",sum(x2,y2)-sum(x1-1,y2)-sum(x2,y1-1)+sum(x1-1,y1-1)); } } } return 0;}
- spoj 1029
- SPOJ 1029 Matrix Summation
- SPOJ-1029 MATSUM
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- 超高频读写器的架构分析
- Photon Socket 术语表
- LeetCode SubSets II
- Spring 框架的设计理念与设计模式分析
- 摩尔定律不再重要
- spoj 1029
- 设计模式C++学习笔记之十(Builder建造者模式)
- Ubuntu中Vmware Tools的安装与卸载
- 贝纳公司的对RFID读写器及标签的市场分析(写的不错)
- ArcGIS 10.1对Lidar支持的魔法力量(二)
- WDM驱动程序 INF文件格式解析
- SQL注入防范(WebKnight)
- 开发的超高频读写器模块性能指标
- HDU 1573 中国剩余定理(有不互质情况)