bzoj 1513: [POI2006]Tet-Tetris 3D 二维线段树
来源:互联网 发布:淘宝发布宝贝被限制 编辑:程序博客网 时间:2024/06/01 09:35
→题目链接←
【想说的话】
...........感冒了好难受
【题解】
二维线段树+标记永久化
【代码】
#include<bits/stdc++.h>#define MAXN 3030#define ls x<<1,lx,mid#define rs x<<1|1,mid+1,rxusing namespace std;inline int rd(){int x=0,y=1;char c=getchar();while(c<'0' || c>'9'){if(c=='-')y=-y;c=getchar();}while(c>='0'&&c<='9')x=x*10+c-'0',c=getchar();return x*y;}int n,m,q;int ll,rr;struct treex{int Max[MAXN],lazy[MAXN];void update(int x,int lx,int rx,int l,int r,int k){Max[x]=max(Max[x],k);if(lx>=l && rx<=r)lazy[x]=max(lazy[x],k);else{int mid=(lx+rx)/2;if(r<=mid)update(ls,l,r,k);else if(l>mid)update(rs,l,r,k);else update(ls,l,mid,k),update(rs,mid+1,r,k);}}int query(int x,int lx,int rx,int l,int r){if(lx>=l && rx<=r)return Max[x];int mid=(lx+rx)/2,ans=lazy[x];if(r<=mid)ans=max(ans,query(ls,l,r));else if(l>mid)ans=max(ans,query(rs,l,r));else ans=max(ans,max(query(ls,l,mid),query(rs,mid+1,r)));return ans;}};struct treey{treex Max[MAXN],lazy[MAXN];void update(int x,int lx,int rx,int l,int r,int k){Max[x].update(1,1,n,ll,rr,k);if(lx>=l && rx<=r)lazy[x].update(1,1,n,ll,rr,k);else{int mid=(lx+rx)/2;if(r<=mid)update(ls,l,r,k);else if(l>mid)update(rs,l,r,k);else update(ls,l,mid,k),update(rs,mid+1,r,k);}}int query(int x,int lx,int rx,int l,int r){if(lx>=l && rx<=r)return Max[x].query(1,1,n,ll,rr);int mid=(lx+rx)/2,ans=lazy[x].query(1,1,n,ll,rr);if(r<=mid)ans=max(ans,query(ls,l,r));else if(l>mid)ans=max(ans,query(rs,l,r));else ans=max(ans,max(query(ls,l,mid),query(rs,mid+1,r)));return ans;}}tree;int main(){n=rd(),m=rd(),q=rd();while(q--){int d=rd(),s=rd(),w=rd(),x=rd(),y=rd();ll=x+1,rr=x+d;int h=tree.query(1,1,m,y+1,y+s)+w;tree.update(1,1,m,y+1,y+s,h);}ll=1,rr=n;printf("%d\n",tree.query(1,1,m,1,m));return 0;}
阅读全文
0 0
- BZOJ 1513 POI2006 Tet-Tetris 3D 二维线段树
- BZOJ 1513 [POI2006]Tet-Tetris 3D 二维线段树
- [二维线段树] BZOJ 1513 [POI2006]Tet-Tetris 3D
- BZOJ 1513: [POI2006]Tet-Tetris 3D 二维线段树
- bzoj 1513 [POI2006]Tet-Tetris 3D二维线段树
- bzoj 1513: [POI2006]Tet-Tetris 3D 二维线段树
- bzoj 1513: [POI2006]Tet-Tetris 3D(二维线段树+标记永久化)
- BZOJ1513 [POI2006]Tet-Tetris 3D 二维线段树
- 二维线段树 洛谷P3437 [POI2006]TET-Tetris 3D
- BZOJ1513: [POI2006]Tet-Tetris 3D 二维线段树
- 【BZOJ 1513】Tet-Tetris 3D【二维线段树】
- bzoj 1513: [POI2006]Tet-Tetris 3D 线段树套线段树
- 【BZOJ1513】【POI2006】Tet-Tetris 3D 二维线段树+标记永久化
- 【BZOJ】1513 [POI2006]Tet-Tetris 3D 树套树
- BZOJ 1513 POI 2006 Tet-Tetris 3D 二维线段树
- bzoj1513 Tet-Tetris 3D(二维线段树)
- 【二维线段树】poi2006 tet
- bzoj1513【POI2006】Tet-Tetris 3D
- 打包混淆的一些bug
- 利用jdbc解决跨数据库之间数据迁移(oracle迁移db2)
- Node.js 创建第一个应用
- 文章标题
- android自定义控件--渐变进度条
- bzoj 1513: [POI2006]Tet-Tetris 3D 二维线段树
- String
- H5页横屏VUE项目bug处理
- SpringMVC集成阿里的dubbo框架
- RN TODO代码解析之一
- Progressive Web Applications(PWA)学习简记
- 第一篇
- Angular练习之animations动画二
- 线程(基础)