摘要: 题目大意:给n个桥,m次潮涨落,给定潮涨落的高度,问被淹没次数大于等于k的桥的个数,对于一直被淹没的,只记录一次。 把不同高度的桥看做坐标不同的点,然后潮涨落就相当于一次区间修改 修改的是上次潮落位置+1的桥到本次潮涨的位置,输出答案时需要访问到每个叶子结点。 AC代码 阅读全文
posted @ 2019-09-22 19:57 流逝丶 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 提供一个比较简单的线段树写法 不用build,ask还有down 一整棵树维护白点的数量,每次change找到精准的区间然后一整个区间都是白点 如果再change的时候发现要访问的区间已经全部覆盖,就可以直接返回,无需再改 输出答案的话, tr[1] 是区间白点总数,所以答案就是 n-tr[1] 阅读全文
posted @ 2019-09-22 19:56 流逝丶 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 这题,第一眼:区间加,区间最小值。这不是线段树裸题吗? 看数据范围 n≤5000000 .开了个tr维护最小值,laz维护加 然后一算空间大概是 152 MB,完了, MLE 。 换方法吧,但是我就想写线段树,就是写线段树才能使我快乐,我就改变策略 本来直接输出 tr[1],我现在删掉 laz ,让 阅读全文
posted @ 2019-09-22 19:55 流逝丶 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 维护最大子段和嘛,要维护这东西我们需要四个东西, 区间和sum,从最左端起的最大连续和ls,从最右端起最大的连续和rs,区间内最 大的连续和mx。 为什么是这四个呢? 我们区间合并的时候,大区间的mx,可能由左或右区间mx更新过 来,可能是左区间rs和右区间ls更新。 对于sum,我们为什么需要? 阅读全文
posted @ 2019-09-22 19:52 流逝丶 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 区间问题,肯定是线段树了,但是区间加的是一个等差数列,怎么办呢 我们可以通过差分来维护。 蛤是差分? 搞一个数组专门差分,在数组中记录对于l~r的区间加x,在l位置加上x,在r+1位置减去x。 当查询某个数值时,该位置上的数加上差分数组中1~该位置的前缀和,自己出组数试一下发现这样是对的 我们线段树 阅读全文
posted @ 2019-09-22 14:38 流逝丶 阅读(98) 评论(0) 推荐(0) 编辑