bzoj1513: [POI2006]Tet-Tetris 3D
Description
Input
Output
zkw线段树套zkw线段树+标记永久化 维护区间最值
#include<cstdio>
int n,D,S;
int x1,y1,x2,y2,h,ans,a0=;
int tr[][][][];
char buf[],*ptr=buf-;
int _(){
int x=,c=*++ptr;
while(c<)c=*++ptr;
while(c>)x=x*+c-,c=*++ptr;
return x;
}
inline void maxs(int&a,int b){if(a<b)a=b;}
void g(int(*a)[]){
int l=+y1,r=+y2,ld=,rd=;
for(;l^r^;l>>=,r>>=){
if(ld)maxs(ans,a[l][]);
if(rd)maxs(ans,a[r][]);
if(~l&)ld=,maxs(ans,a[l^][]);
if(r&)rd=,maxs(ans,a[r^][]);
}
if(ld)maxs(ans,a[l][]);
if(rd)maxs(ans,a[r][]);
for(l>>=;l;l>>=)maxs(ans,a[l][]);
}
void s(int(*a)[]){
int l=+y1,r=+y2,ld=,rd=;
for(;l^r^;l>>=,r>>=){
if(ld)maxs(a[l][],ans);
if(rd)maxs(a[r][],ans);
if(~l&)ld=,maxs(a[l^][],ans),maxs(a[l^][],ans);
if(r&)rd=,maxs(a[r^][],ans),maxs(a[r^][],ans);
}
if(ld)maxs(a[l][],ans);
if(rd)maxs(a[r][],ans);
for(l>>=;l;l>>=)maxs(a[l][],ans);
}
void cal(){
ans=;
int l=+x1,r=+x2,ld=,rd=;
for(;l^r^;l>>=,r>>=){
if(ld)g(tr[][l]);
if(rd)g(tr[][r]);
if(~l&)ld=,g(tr[][l^]);
if(r&)rd=,g(tr[][r^]);
}
if(ld)g(tr[][l]);
if(rd)g(tr[][r]);
for(l>>=;l;l>>=)g(tr[][l]);
ans+=h;
maxs(a0,ans);
l=+x1,r=+x2,ld=,rd=;
for(;l^r^;l>>=,r>>=){
if(ld)s(tr[][l]);
if(rd)s(tr[][r]);
if(~l&)ld=,s(tr[][l^]),s(tr[][l^]);
if(r&)rd=,s(tr[][r^]),s(tr[][r^]);
}
if(ld)s(tr[][l]);
if(rd)s(tr[][r]);
for(l>>=;l;l>>=)s(tr[][l]);
}
int main(){
fread(buf,,sizeof(buf),stdin);
D=_();S=_();n=_();
for(int i=;i<n;++i){
x2=_();y2=_();h=_();
x1=_();y1=_();
x2+=x1;y2+=y1;
++x1;++y1;
cal();
}
printf("%d",a0);
return ;
}
bzoj1513: [POI2006]Tet-Tetris 3D的更多相关文章
- bzoj1513【POI2006】Tet-Tetris 3D
1513: [POI2006]Tet-Tetris 3D Time Limit: 30 Sec Memory Limit: 162 MB Submit: 733 Solved: 245 [Subm ...
- BZOJ1513:[POI2006]TET-Tetris 3D(线段树套线段树)
Description Task: Tetris 3D "Tetris" 游戏的作者决定做一个新的游戏, 一个三维的版本, 在里面很多立方体落在平面板,一个立方体开始落下直到碰上一 ...
- BZOJ1513 [POI2006]Tet-Tetris 3D 【二维线段树】
题目链接 BZOJ1513 题解 真正地理解了一波线段树标记永久化的姿势 每个节点维护两个值\(v\)和\(tag\) \(v\)代表儿子中的最值 \(tag\)代表未下传的最值 显然节点的区间大于等 ...
- 【BZOJ1513】[POI2006]Tet-Tetris 3D 二维线段树
[BZOJ1513][POI2006]Tet-Tetris 3D Description Task: Tetris 3D "Tetris" 游戏的作者决定做一个新的游戏, 一个三维 ...
- bzoj 1513 [POI2006]Tet-Tetris 3D(二维线段树)
1513: [POI2006]Tet-Tetris 3D Time Limit: 30 Sec Memory Limit: 162 MBSubmit: 540 Solved: 175[Submit ...
- 洛谷 P3437 [POI2006]TET-Tetris 3D 解题报告
P3437 [POI2006]TET-Tetris 3D 题目描述 The authors of the game "Tetris" have decided to make a ...
- P3437 [POI2006]TET-Tetris 3D
题目 P3437 [POI2006]TET-Tetris 3D 做法 一眼就是二维线段树,仔细想想,赋值操作怎么办??\(lazy\)标记放在一维,下一次又来放个标记二维就冲突了 正解:永久化标记 怎 ...
- bzoj 1513 POI2006 Tet-Tetris 3D 二维线段树+标记永久化
1511: [POI2006]OKR-Periods of Words Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 351 Solved: 220[S ...
- 【BZOJ】1513: [POI2006]Tet-Tetris 3D
题意 给\(n(1 \le n \le 20000)\)个立方体\((x, y, z)\),依次落下.求所有立方体落下完了以后最高的高度. 分析 平面求最大值,平面更新最大值. 题解 二维线段树走起, ...
随机推荐
- GetProcAddress 宏
#define FUNC_ADDR(hDll, func) pf##func func = \ (pf##func)GetProcAddress(hDll,#func);\ if(! func) {\ ...
- WCF服务在类库中的引用
在类库中引用了WCF服务,悲剧降临了,追踪日志看到下边一串: --------------------------------------------------------------------- ...
- 分布式系统开发的一些相关理论基础——CAP、ACID、BASE
本文主要讲述分布式系统开发的一些相关理论基础. 一.ACID 事务的四个特征: 1.Atomic原子性 事务必须是一个原子的操作序列单元,事务中包含的各项操作在一次执行过程中,要么全部执行成功,要么全 ...
- CentOS7下安装MYSQL5.7
第一种方式:yum安装 1.下载mysql57-community-release-el7-9.noarch 下载地址:http://dev.mysql.com/downloads/repo/yum/
- Windows“神器”收集贴
本文本来是刚开始发现autohotkey时比较兴奋,收集了几个autohotkey的介绍页面.最近又发现了win下多桌面的神器virtuawin,心想干脆在把本帖改成专门收集win下神器的帖子吧.如果 ...
- iOS开发Swift篇—(八)函数(2)
iOS开发Swift篇—(八)函数(2) 一.函数类型 函数类型也是数据类型的一种,它由形参类型和返回值类型组成,格式是 (形参类型列表) -> 返回值类型 func sum(num1: Int ...
- PHP批量过滤MYSQL数据库内站外链接和图片
因发现站内很多引用站外文章的链接失效,产生大量的死链接,对于搜索引擎来说是极不友好的,很不利于网站优化,所以站内添加了站外链接过滤功能,对于新加的文章,在添加入库时就自动增加rel="nof ...
- 使用WinINet和WinHTTP实现Http访问
使用WinINet和WinHTTP实现Http访问 Http访问有两种方式,GET和POST,就编程来说GET方式相对简单点,它不用向服务器提交数据,在这个例程中我使用POST方式,提交数据value ...
- POJ 2446 最小点覆盖
Chessboard Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 14787 Accepted: 4607 Descr ...
- Android 4.2以上的手机USB调试设置
今天遇到一个问题,我手上有两部手机一部是红米.一部是中兴的青漾QY N986,两部手机的Android系统都是4.2.1的,连接到电脑测试,找了半天没有找到设置开发者选项,后来在网上找了半天,才发现g ...