题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2957 线段树维护两个值:cnt 能看到的最多楼房数; mx 最大斜率数; 对于一段区间,从左子区间的角度出发来限制右子区间,得到总区间的 cnt 和 mx; 转移时关注新斜率和左右子区间最大斜 ...
分类:
其他好文 时间:
2018-06-20 11:15:08
阅读次数:
142
题目大意: 小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)的连线没有与之前的线段相交,那么这栋楼房就被认为是可见的。 施工队的建造总共进行了M天。初始时,所有楼房都还没有开始建造 ...
分类:
其他好文 时间:
2018-05-13 13:38:54
阅读次数:
157
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2957 线段树。每个点记录斜率,要一个单增的序列长度(从1开始)。 线段树每个点记录自己区间的max和单增长度,pushup的时候通过mx [ ls ]判断往哪个儿子递归。 需要注意的是当右儿子 ...
分类:
其他好文 时间:
2018-04-28 21:10:24
阅读次数:
157
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2957 线段树维护原点到楼顶的斜率,可以知道答案就是从原点开始斜率递增的个数; 记录一个mx数组表示这一段上最大的斜率,二分,分类讨论,递归求解; 而且如果要取rs的长度,不是直接取tr[rs] ...
分类:
其他好文 时间:
2018-04-28 20:53:16
阅读次数:
179
题目描述 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。 为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段 ...
分类:
其他好文 时间:
2018-04-27 13:59:02
阅读次数:
129
题目 "传送门" Sol 线段树,维护斜率单增的最高点和长度 更新,以下的都是指斜率 当前点的左儿子更新上来,右儿子递归 如果右儿子的左儿子的最大值大于左儿子的 加上算出右儿子的右儿子的贡献(右儿子贡献减去右儿子的左儿子的贡献),递归右儿子的左儿子 否则,递归右儿子的右儿子 cpp include ...
分类:
其他好文 时间:
2018-03-21 22:03:26
阅读次数:
203
Time Limit: 10 Sec Memory Limit: 256 MB Submit: 3042 Solved: 1414 [Submit][Status][Discuss] Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又 ...
分类:
其他好文 时间:
2018-03-18 18:41:08
阅读次数:
173
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。 为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i, ...
分类:
其他好文 时间:
2018-03-09 20:28:05
阅读次数:
178
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,H ...
分类:
其他好文 时间:
2018-02-05 00:28:04
阅读次数:
212
题目链接:2957: 楼房重建 分块没学过的可以看,分块入门。 题解:把房子分成√n块每块里面维护一个递增的子序列,每次更新之后,在每一个小块内二分查找第一个大于前面最大的斜率,开始斜率为0,每次找完一块更新一次,暴力加进答案。 ...
分类:
其他好文 时间:
2018-02-01 20:43:39
阅读次数:
160