POJ 2482 Stars in Your Window
来源:互联网 发布:淘宝女装店铺描述范文 编辑:程序博客网 时间:2024/05/21 11:16
//矩形面积并//注意数据范围,虽然坐标x,y在int范围内,但是当x+W,y+H时,可能会超出int//当不考虑点在边界上时,矩形为(x,y)~(x+W,y+H)#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define LL long longconst int maxn = 22222;struct edge{ LL a,b,h; int s;};bool cmp(const edge &p,const edge &q){ if(p.h==q.h) return p.s<q.s; return p.h<q.h;}int lazy[maxn<<2];int v[maxn<<2];LL x[maxn];edge e[maxn];int n,m;int cnt;void pushdown(int rt){ if(lazy[rt]!=0) { lazy[rt<<1]+=lazy[rt]; lazy[rt<<1|1]+=lazy[rt]; v[rt<<1]+=lazy[rt]; v[rt<<1|1]+=lazy[rt]; lazy[rt]=0; }}void pushup(int rt){ v[rt]=max(v[rt<<1],v[rt<<1|1]);}void update(int L,int R,int s,int l,int r,int rt){ if(L<=l&&r<=R) { lazy[rt]+=s; v[rt]+=s; return; } pushdown(rt); int mid=(l+r)>>1; if(L<=mid) update(L,R,s,l,mid,rt<<1); if(R>mid) update(L,R,s,mid+1,r,rt<<1|1); pushup(rt);}void add_rectangel(LL x1,LL y1,LL x2,LL y2,int v){ x[m]=x1; e[m].a=x1,e[m].b=x2,e[m].h=y1,e[m++].s=v; x[m]=x2; e[m].a=x1,e[m].b=x2,e[m].h=y2,e[m++].s=-v;}int bst(LL v,LL x[],int size){ int l,r,mid; l=0,r=size-1; while(l<=r) { mid=(l+r)>>1; if(x[mid]==v) return mid; if(x[mid]<v) l=mid+1; else r=mid-1; } return -1;}int input(){ LL W,H; if(scanf("%d%lld%lld",&n,&W,&H)==EOF) return 0; LL tx,ty; int tv; m=0; for(int i=0;i<n;i++) { scanf("%lld%lld%d",&tx,&ty,&tv); add_rectangel(tx,ty,tx+W,ty+H,tv); } sort(e,e+m,cmp); sort(x,x+m); cnt=1; for(int i=1;i<m;i++) { if(x[i]!=x[i-1]) x[cnt++]=x[i]; } return 1;}void solve(){ memset(lazy,0,sizeof(lazy)); memset(v,0,sizeof(v)); int ans=1; int L,R; for(int i=0;i+1<m;i++) { L=bst(e[i].a,x,cnt); R=bst(e[i].b,x,cnt)-1; if(L<=R) { update(L,R,e[i].s,0,cnt-1,1); ans=max(ans,v[1]); } } printf("%d\n",ans);}int main(){ while(input()!=0) { solve(); } return 0;}
0 0
- poj 2482 Stars in Your Window
- POJ 2482:Stars in Your Window
- POJ 2482 Stars in Your Window
- POJ 2482 Stars in Your Window
- poj 2482 Stars in Your Window
- POJ 2482 Stars in Your Window
- Poj 2482 Stars in Your Window
- POJ 2482 Stars in Your Window
- POJ 2482 Stars in Your Window
- POJ 2482 Stars in Your Window 线段树
- POJ 2482 Stars in Your Window(扫描线)
- 扫描线 POJ 2482 Stars in Your Window
- poj 2482 Stars in Your Window 线段树
- poj 2482 Stars in Your Window(线段树+扫描线)
- poj-2482-Stars in Your Window-线段树
- poj 2482 Stars in Your Window(线段树+扫描线)
- poj 2482 Stars in Your Window(线段树,扫描线)
- 【POJ】2482 Stars in Your Window 线段树 + 扫描线
- 用javascript实现水印的效果
- Word Search
- 一步一步学Nagios安装部署与监控
- 随转觉得还不错
- 经纬财富:荆门金价是否继续走强
- POJ 2482 Stars in Your Window
- 数据分类那些事儿
- iOS 找到视图的第一响应者
- Dynamic Web TWAIN使用教程:创建网页扫描程序
- HDU4474 Yet Another Multiple Problem
- 浏览器的按钮和输入框变小了,怎么办?
- 待字闺中之树的高度分析
- 项目经验:jdbc实现批量添加、批量删除
- 利用Obj-C语言的反射特性减少代码量