随笔分类 -  线段树

Codeforces 877E 线段树维护子树
摘要:``` / codeforces 877E 线段树维护子树 Author: lcy Time: 2017 11 2 一棵树,每个节点上有灯,每次可以操作 一颗子树,使其上面亮的灯熄灭, 灭的灯变亮。此外有一个查询操作, 返回每个子树中亮着的灯的个数。 先序遍历一遍树,重新标号,然后用线段树 维护每颗 阅读全文
posted @ 2017-11-02 21:44 cylcy 阅读(666) 评论(0) 推荐(0)
Codeforces 869e 二维树状数组维护
摘要:``` /* codeforces 869e 二维树状数组维护 Author:lcy Time:2017-10-18 在一个平面上可以有两种操作,添加矩形围墙以及删除矩形围墙, 题目保证围墙之前不会相交。 同时会有多组询问,给出两个点,判断能否相互抵达 怎么把围墙表示出来? 给出左上角的点(x1,y1),右下角的点(x2,y2),我们只需要 在以(x1,y1),(x2+1,y2+1)为对角的矩形... 阅读全文
posted @ 2017-10-18 15:35 cylcy 阅读(134) 评论(0) 推荐(0)
Hihocoder1586 线段树(裸)
摘要:``` /* hihocoder1586 线段树(裸) 实现一个数据结构,有如下操作: 1.询问[l,r]内ai*aj的最小值(i可以等于j) 2.修改某个点ai的值 17北京网络赛的题目,现场逗比写了四颗线段树分别维护正负数的最大最小值,两百行跪。 其实没有这么复杂,选择乘积的乘数时可以选同一个数,所以如果区间最小值为正,那么答案就是它的平方。 如果区间最小值为负,那么我们需要知道区间最大值。如... 阅读全文
posted @ 2017-09-27 16:28 cylcy 阅读(115) 评论(0) 推荐(0)
HDU6070 线段树加速递推
摘要:``` / hdu6070 二分答案 mid,检验是否存在一个区间满足 size(l,r) r−l+1 ≤ mid,也就是 size(l, r) + mid × l ≤ mid × (r + 1)。 从左往右枚举每个位置作为 r,当 r 变化为 r + 1 时,对 size 的影响是一段区间加 1, 阅读全文
posted @ 2017-09-22 17:27 cylcy 阅读(80) 评论(0) 推荐(0)
Codeforces820d 递推+线段树
摘要:``` //codeforces820d 递推+线段树 / 每次将序列向左平移至下一个序列时,只用考虑当前序列里abs(p[i] i)大于零的个数以及小于等于零的个数, 新的序列值等于(negative positive)+abs(v[n k+1] 1) abs(v[n k+1] n), 因为abs 阅读全文
posted @ 2017-09-22 17:17 cylcy 阅读(90) 评论(0) 推荐(0)
hdu5091 线段树+扫描线
摘要:``` //hdu5091 线段树+扫描线 矩形最大覆盖 / http://blog.csdn.net/u010787640/article/details/40948255 / include include include include include include include incl 阅读全文
posted @ 2017-09-22 17:17 cylcy 阅读(95) 评论(0) 推荐(0)