二维线段树UVA11297
来源:互联网 发布:linux硬件时间 编辑:程序博客网 时间:2024/06/06 13:05
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;#define nn 505#define inf 0x7fffffffint ma[nn<<2][nn<<2],mi[nn<<2][nn<<2];int x,y,xo,xleaf,v,x1,x2,y1,y2;int n,m,vmax,vmin;void query1(int l,int r,int rt){ if(y1<=l&&y2>=r) { vmax=max(ma[xo][rt],vmax); vmin=min(mi[xo][rt],vmin); return; } int mid=(l+r)>>1; if(y1<=mid) query1(l,mid,rt<<1); if(y2>mid) query1(mid+1,r,rt<<1|1);}void query2(int l,int r,int rt){ if(x1<=l && x2>=r) { xo=rt; query1(1,m,1); return; } int mid=(l+r)>>1; if(mid>=x1) query2(l,mid,rt<<1); if(x2>mid) query2(mid+1,r,rt<<1|1);}void updata1(int l,int r,int rt){ if(l==r) { if(xleaf) { ma[xo][rt]=mi[xo][rt]=v; return; } ma[xo][rt]=max(ma[xo][rt<<1],ma[xo][rt<<1|1]); mi[xo][rt]=min(mi[xo][rt<<1],mi[xo][rt<<1|1]); return; } int mid=(l+r)>>1; if(y<=mid) updata1(l,mid,rt<<1); else updata1(mid+1,r,rt<<1|1); ma[xo][rt]=max(ma[xo][rt<<1],ma[xo][rt<<1|1]); mi[xo][rt]=min(mi[xo][rt<<1],mi[xo][rt<<1|1]);}void updata2(int l,int r,int rt){ if(l==r) { xo=rt; xleaf=1; updata1(1,m,1); return; } int mid=(l+r)>>1; if(x<=mid) updata2(l,mid,rt<<1); else updata2(mid+1,r,rt<<1|1); xo=rt; xleaf=0; updata1(1,m,1);}int main(){ while(~scanf("%d%d",&n,&m)) { for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { scanf("%d",&v); x=i; y=j; updata2(1,n,1); } } int q; scanf("%d",&q); while(q--) { char s[10]; scanf("%s",s); if(s[0]=='q') { scanf("%d%d%d%d",&x1,&y1,&x2,&y2); vmax=-inf; vmin=inf; query2(1,n,1); printf("%d %d\n",vmax,vmin); } else { scanf("%d%d%d",&x,&y,&v); updata2(1,n,1); } } } return 0;}
0 0
- 二维线段树UVA11297
- uva11297 二维线段树
- uva11297 Census 【二维线段树】
- UVA11297--Census(二维线段树)
- uva11297 - Census 线段树套线段树
- 二维线段树
- poj1656----二维线段树
- poj2155 二维线段树
- hdu1823 二维线段树
- POJ2155 二维线段树
- hdu1823 二维线段树
- HDU1823(二维线段树)
- poj2155 二维线段树
- CUGBACM_Summer_Tranning2【二维线段树】
- 二维线段树
- hdu1823 二维线段树
- hdu4819 二维线段树
- 二维线段树模版
- JavaScript常用对象
- Ajax xmlHttpRequest的status的值的含义
- js数组元素删除操作
- PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别
- EJB学习笔记七(依赖注入)
- 二维线段树UVA11297
- Python PIL 图片添加水印
- 总有你值得一试的python开源项目
- Mac IOS开发环境搭建
- JS----编码,解码decodeURIComponent,encodeURIComponent,decodeURI,encodeURI
- Android 单元测试——AndroidTestCase
- uStart.org的网站实现初步研究
- Bypassing Google Authentication on Periscope's Administration Panel
- 程序员如何爱护自己的眼睛