E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Tet-Tetris
[旧文章补档]线段树标记永久化个人理解 & BZOJ 1513 [POI2006]
Tet-Tetris
3D
DescriptionTask:Tetris3D“Tetris”游戏的作者决定做一个新的游戏,一个三维的版本,在里面很多立方体落在平面板,一个立方体开始落下直到碰上一个以前落下的立方体或者落地即停止.作者想改变一下游戏的目的使得它更大众化,在新游戏中你将知道落下的立方体信息以及位置,你的任务就是回答所有立方体落下后最高的方块的高度.所有的立方体在下落过程中都是垂直的并且不会旋转.平板左下角坐标为原
jrljn
·
2020-08-24 22:28
[POI2006]
TET-Tetris
3D
传送门要做这道题我们需要两个前置技能:二维线段树和标记永久化。我们使用一维线段树来维护一个序列,那我们想维护一个矩阵的时候,二维线段树应运而生。二维线段树好像有两种实现方法。一是对于每一个节点(x轴上的每个点)在里面再开一棵线段树(表示一个y轴)(这好像更多人管他叫树套树做法?)第二个是把它变成一棵四叉树……不过这种实现方法我并没有学。具体的实现方法其实非常优秀,可以选择写结构体。就是对于一次修改
weixin_30897079
·
2020-08-24 20:38
二维线段树 洛谷P3437 [POI2006]
TET-Tetris
3D
https://www.luogu.org/problem/show?pid=3437代码就不用看了,全抄hzwer的,但是我调了一个多钟头汗;这个就是基本的二维线段树了,lazy都不用的,不知道是不是传说中的标记永久化;二维线段树,我选择树套树,因为四分树好像会被卡网上只有书树套树的标程二维线段树,无论是什么操作都十分繁琐吧;所以我们要精简;maketree这种东西能不搞就不弄把,只要在函数参数
山清水秀iOS
·
2020-08-17 03:57
[二维线段树] BZOJ 1513 [POI2006]
Tet-Tetris
3D
二维线段树算个模板题吧区间赋值区间max一遇到带标记的树套树就蛋疼怎么说呢标记永久化就不用下传了从根到某个节点的区间上的路径自顶向下顺着递归的顺序修改就省去了pushup#include#include#includeusingnamespacestd;typedeflonglongll;inlinecharnc(){staticcharbuf[100000],*p1=buf,*p2=buf;if
里阿奴摩西
·
2020-08-17 03:22
线段树
树套树
[POI2006]
TET-Tetris
3D
题目描述:写一个数据结构,支持查询一个矩形的最大值并将这个矩形的值全部变为这个最大值加一个常数题目分析:二维线段树+标记永久化maxi表示子树内的一个最大值,tag表示子树全部都被覆盖的值…题目链接:Luogu3437Ac代码:#include#include#include#includeintMaxx,Maxy,n;structinside_seg{intmaxi[4005],tag[4005
HT008_123
·
2020-08-17 01:43
题目分析
二维线段树
树套树
bzoj 1513 [POI2006]
Tet-Tetris
3D二维线段树
一句话题意:给你一个矩形,给出两种操作,一种询问区间最大值,一种区间加。由于刚学习二维树状数组,所以想试试,但是想了想发现没法维护最大值,或者说强行维护的话好像会到达log^4。。。因为一维树状数组维护最大值是log^2的,这就得不偿失了。所以还是二维线段树,一开始打错了,删掉3000多b重打,一阵酸爽。其实就是树套树辣,对于行维护一个线段树,每一行维护一个线段树,然后发现矩阵的信息没法上传和下传
Transcendence_magia
·
2020-08-17 01:42
bzoj
线段树
【BZOJ】1513 [POI2006]
Tet-Tetris
3D 树套树
题目传送门好像我真的低估了树套树了……做完了前面的那题,我竟然以为自己彻底掌握了树套树……大佬传送门,话说还是ZZK最强了,博客写的如此清晰、明白。对线段树套线段树还不是很理解的同学可以去大佬的博客里学习一下。写一下自己对树套树的理解:树套树其实是由两种线段树组成——权值线段树和标记线段树。外层线段树每一个节点都包含两种内层线段树。先了解一下标记永久化。标记永久化就是不向下传递标记,而是每次经过当
Chester_King
·
2020-08-17 01:50
BZOJ
难题
线段树
树套树
BZOJ 1513 POI 2006
Tet-Tetris
3D 二维线段树
题目大意:三维俄罗斯方块,问最后摞了多高。思路:二维线段树的裸题。但是要注意二维线段树不支持标记下穿。所以就不下传,每次更新答案的时候先看标记,然后用所有的跟标记比较大小之后返回。具体看代码吧,不知道怎么说。CODE:#define_CRT_SECURE_NO_WARNINGS#include#include#include#include#defineMAX1100usingnamespaces
16bit戦争
·
2020-08-17 00:42
POI
线段树
BZOJ
bzoj 1513: [POI2006]
Tet-Tetris
3D 二维线段树
→题目链接←【想说的话】...........感冒了好难受【题解】二维线段树+标记永久化【代码】#include#defineMAXN3030#definelsx'9'){if(c=='-')y=-y;c=getchar();}while(c>='0'&&c=l&&rxmid)update(rs,l,r,k);elseupdate(ls,l,mid,k),update(rs,mid+1,r,k);
everlasting__
·
2020-08-17 00:26
BZOJ题解
————高级数据结构————
树套树
BZOJ1513: [POI2006]
Tet-Tetris
3D
题目大意:在一个给定的矩形区域内,每次查询一个矩形的最大值,然后再把这个矩形内的值全都赋成这个值加上一个数,问最后的最大值是多少学了二维线段树,以前以为二维线段树只是树套树,后来发现二维线段树必须标记永久化标记永久化对于线段树上每个节点需要维护两个量,拿维护最大值来举例,你需要维护一个值have,代表这个子树里有这样一个最大值,另外一个值all代表这个子树里全都是这个值那么赋值的时候我们需要把路径
commonc
·
2020-08-17 00:06
BZOJ
POI
二维线段树
标记永久化
[POI2006]
Tet-Tetris
3D
DescriptionTetris3D"Tetris"游戏的作者决定做一个新的游戏,一个三维的版本,在里面很多立方体落在平面板,一个立方体开始落下直到碰上一个以前落下的立方体或者落地即停止.作者想改变一下游戏的目的使得它更大众化,在新游戏中你将知道落下的立方体信息以及位置,你的任务就是回答所有立方体落下后最高的方块的高度.所有的立方体在下落过程中都是垂直的并且不会旋转.平板左下角坐标为原点,并且平
a5163273
·
2020-08-17 00:25
【BZOJ1513】【POI2006】
Tet-Tetris
3D 二维线段树+标记永久化
题解:题意很裸啊~~~培训的时候说要写标记永久化,反正永久化很水,就直接写了。但是我并不知道为什么要永久化,或者说理解不深刻,但是再遇上肯定能分析出来233。大概应该可能或许就是:直接原因:下传标记传不下去。根本原因:线段树有两层,这样它的传递可能就有点像拓扑了就是外层线段树需要往内层线段树传,然后内层线段树还要下传这样扫到某处时发现,****,还需要顺着两边的标记路径回溯到根,然后各种压栈啊什么
空灰冰魂
·
2020-08-16 23:40
二维线段树
树套树
标记永久化
BZOJ1513
POI2006
Tet-Tetris
3D
二维线段树
标记永久化
BZOJ 1513 POI2006
Tet-Tetris
3D 二维线段树
题目大意:给定一个矩阵,初始每个位置上的元素都是0,每次选择一个子矩形,将这个子矩形内的值修改为这个子矩形内的最大值+h,求最终所有位置上的最大值我们需要维护一种数据结构,支持更新子矩形的值和查询子矩形最大值似乎二维线段树就可以了?但是YY了一下我们会发现两个没法解决的问题:1.标记的下传2.信息的上传其实。。。第一个很好办嘛!不下传不就好了!标记永久化,无需下传,只要查询的时候对线段树路径上的每
PoPoQQQ
·
2020-08-16 23:32
BZOJ
树套树
线段树
bzoj1513【POI2006】
Tet-Tetris
3D
1513:[POI2006]Tet-Tetris3DTimeLimit:30SecMemoryLimit:162MBSubmit:733Solved:245[Submit][Status][Discuss]DescriptionTask:Tetris3D"Tetris"游戏的作者决定做一个新的游戏,一个三维的版本,在里面很多立方体落在平面板,一个立方体开始落下直到碰上一个以前落下的立方体或者落地即
AaronPolaris
·
2020-08-16 23:10
线段树
树套树
好题
OIer的狂欢
BZOJ1513 [POI2006]
Tet-Tetris
3D 二维线段树
需要区间修改的二维线段树。使用标记永久化。我代码是抄的,跟网上别人代码一样。#include#include#include#includeusingnamespacestd;constintMAXN=1030;intD,S,n;intd,s,w,x,y;intql,qr,qu,qd,ans;structSeg_X{intp[MAXN>1;if(Rmid)Change(x>1;if(Rmid)re
KuribohG
·
2020-08-16 23:51
BZOJ
洛谷3460 [POI2007]
TET-Tetris
Attack(贪心)(树状数组)
题意给定一个长度为2n的序列,1~n各出现两次,可以交换相邻两项,两个同样的数放在一起会对消,求把所有数对消的最小交换次数,并输出方案。特性一种很显然的贪心,两两间原始距离最近的先合并,再到远的。这么做是为了在包含关系的时候先处理掉里面的。如果要是交叉的话,先删哪个都没所谓,可以自己YY一下。心路所以我就想排序后用树状数组维护编号,其它模拟就好,因为总步数才1000000,用并查集跳过删除的数字。
逐梦起航-带梦飞翔
·
2018-11-01 13:44
树状数组
刷题之路
贪心
bzoj 1513: [POI2006]
Tet-Tetris
3D(二维线段树+标记永久化)
1513:[POI2006]Tet-Tetris3DTimeLimit:30SecMemoryLimit:162MBSubmit:845Solved:289[Submit][Status][Discuss]DescriptionTask:Tetris3D"Tetris"游戏的作者决定做一个新的游戏,一个三维的版本,在里面很多立方体落在平面板,一个立方体开始落下直到碰上一个以前落下的立方体或者落地即
clover_hxy
·
2016-06-18 17:26
线段树
POI2006-BZOJ1513:
Tet-Tetris
3D
题意:给定一个空矩阵,对其进行两种操作:1.矩阵询问max2.矩阵赋值你只需要输出最后的矩阵最大值。二维线段树……应该是显然的,但是做的时候发现自己Naive了……首先我们在修改一个子矩阵时,包含子矩阵的那些矩阵的值在外层没办法上传。其次我们发现子矩阵的子矩阵也没有信息……忽然想到标记永久化这个东西,想到一种方法大概这样:比较显然的一点就是,内外层线段树是等效的,所以我们只要不在外层上传信息,下传
zxn0803
·
2016-04-07 18:00
bzoj 1513 [POI2006]
Tet-Tetris
3D(二维线段树)
1513:[POI2006]Tet-Tetris3DTimeLimit:30Sec MemoryLimit:162MBSubmit:540 Solved:175[Submit][Status]DescriptionTask:Tetris3D"Tetris"游戏的作者决定做一个新的游戏,一个三维的版本,在里面很多立方体落在平面板,一个立方体开始落下直到碰上一个以前落下的立方体或者落地即停止.作
hahalidaxin
·
2016-02-15 16:00
bzoj1513【POI2006】
Tet-Tetris
3D
1513:[POI2006]Tet-Tetris3DTimeLimit: 30Sec MemoryLimit: 162MBSubmit: 733 Solved: 245[Submit][Status][Discuss]DescriptionTask:Tetris3D"Tetris"游戏的作者决定做一个新的游戏,一个三维的版本,在里面很多立方体落在平面板,一个立方体开始落下直到碰上一个以前落下的
AaronGZK
·
2016-01-18 18:00
线段树
bzoj
BZOJ 1513 [POI2006]
Tet-Tetris
3D
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1513 题意:三维空间,有一些立方体在垂直下落。立方体的左下角坐标(x,y)以及长宽高d,s,w。A落在B上时将停止下落(即使A只有一小块跟B重合就算A会落在B上)。求最后最大的高度。 思路:每次覆盖时找到区域最大值,加上当前立方体的高度。 int xL,xR,yL,yR;
·
2015-11-02 19:39
poi
BZOJ 1513 [POI2006]
Tet-Tetris
3D 二维线段树
题意:d*s的平面上,掉落n个方块。每个方块会掉落在地上或者另一个方块上。现给定每个方块的长宽高以及掉落位置。求解最后能摞多高(牛顿死的早)解析:显然h[i]=max(h[j])+w[i](j小于i&&i可以落在j上)。如何维护这个式子呢,对于这种数据范围,我们直接上一个二维数据结构维护平面内最大值即可。但是需要注意的是,二维线段树并不可以标记下传。所以我们不妨考虑标记永久化,查询某个区间的时候,
wzq_QwQ
·
2015-10-09 20:00
poi
线段树
3D
bzoj
BZOJ 1513 POI2006
Tet-Tetris
3D 二维线段树
题目大意:给定一个矩阵,初始每个位置上的元素都是0,每次选择一个子矩形,将这个子矩形内的值修改为这个子矩形内的最大值+h,求最终所有位置上的最大值我们需要维护一种数据结构,支持更新子矩形的值和查询子矩形最大值似乎二维线段树就可以了?但是YY了一下我们会发现两个没法解决的问题:1.标记的下传2.信息的上传其实。。。第一个很好办嘛!不下传不就好了!标记永久化,无需下传,只要查询的时候对线段树路径上的每
PoPoQQQ
·
2015-06-28 20:00
线段树
bzoj
树套树
BZOJ1513
BZOJ 1513 POI 2006
Tet-Tetris
3D 二维线段树
题目大意:三维俄罗斯方块,问最后摞了多高。思路:二维线段树的裸题。但是要注意二维线段树不支持标记下穿。所以就不下传,每次更新答案的时候先看标记,然后用所有的跟标记比较大小之后返回。具体看代码吧,不知道怎么说。CODE:#define_CRT_SECURE_NO_WARNINGS #include #include #include #include #defineMAX1100 usingnam
jiangyuze831
·
2015-02-27 08:00
数据结构
poi
bzoj
二维线段树
【BZOJ1513】【POI2006】
Tet-Tetris
3D 二维线段树+标记永久化
题解:题意很裸啊~~~培训的时候说要写标记永久化,反正永久化很水,就直接写了。但是我并不知道为什么要永久化,或者说理解不深刻,但是再遇上肯定能分析出来233。大概应该可能或许就是:直接原因:下传标记传不下去。根本原因:线段树有两层,这样它的传递可能就有点像拓扑了就是外层线段树需要往内层线段树传,然后内层线段树还要下传这样扫到某处时发现,****,还需要顺着两边的标记路径回溯到根,然后各种压栈啊什么
Vmurder
·
2015-01-08 23:00
3D
二维线段树
标记永久化
BZOJ1513
POI2006
Tet-Tetris
BZOJ1513 [POI2006]
Tet-Tetris
3D 二维线段树
需要区间修改的二维线段树。使用标记永久化。我代码是抄的,跟网上别人代码一样。#include #include #include #include usingnamespacestd; constintMAXN=1030; intD,S,n; intd,s,w,x,y; intql,qr,qu,qd,ans; structSeg_X { intp[MAXN>1; if(Rmid)Change(x>
KuribohG
·
2015-01-07 17:00
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他