
线段树
dan__zh
qq:1244536605
看我的博客有任何地方没看懂的可以加我qq,我会仔细解答~~~
展开
-
洛谷P2846 [USACO08NOV]光开关Light Switching 线段树+区间反转
洛谷P2846 [USACO08NOV]光开关Light Switching 标签 线段树 区间反转 简明题意 给出一排初始时都关闭着的灯,现需要你支持两张操作。 将区间[L,R]的灯都反转 询问区间[L,R]亮着的灯的数量 思路 区间操作显然线段树可以解决 我们给每个节点两个属性: sum表示当前区间开着的灯的数量 tag表示这个区间的开关还有多少次未被按下 我们...原创 2019-07-07 16:59:49 · 464 阅读 · 0 评论 -
洛谷P2574 XOR的艺术 线段树+区间反转
洛谷P2574 XOR的艺术 标签 线段树 区间反转 简明题意 这题实际上就是 洛谷2846 光开关 题解 思路 思路可以直接看上面的题解了。这题只是换了个情景,然后默认给了你初始的开关灯情况,而那题默认所有的灯都是关闭的。这里可以直接把初始的01串当成命令,遇到0执行一次change即可 注意事项 无 总结 无 AC代码 #include<cstdio&g...原创 2019-07-07 17:30:38 · 252 阅读 · 0 评论 -
洛谷P2023 [AHOI2009]维护序列 线段树+多重tag
洛谷P2023 [AHOI2009]维护序列 标签 线段树 简明题意 让你维护一个序列,支持3种操作。 区间[L,R]每个数都乘以某个数c 区间[L,R]每个数都加上某个数c 查询区间[L,R]的和%mod的结果(mod由输入给出) 思路 这题和普通的懒惰线段树多了个区间乘的操作,这个操作不是很好处理。先说如何添加tag: 给每个节点做两个tag,一个是plus记录区间还...原创 2019-07-07 21:58:24 · 189 阅读 · 2 评论 -
洛谷P2894 [USACO08FEB]酒店Hotel 线段树+区间合并+多重tag
洛谷P2894 [USACO08FEB]酒店Hotel 标签 线段树 区间合并 多种懒惰标记 简明题意 维护一个01序列,支持三种操作 询问连续x长的区间的最小左端点。若不存在则输出0 将区间[L,R]全置为0 将区间[L,R]全置为0 思路 主要说说tag的处理。由于对区间有两种操作,一个是置0,一个是置1,自然应该想到两种tag的处理方法。参见这里,较为详细地说明了如...原创 2019-07-08 20:00:52 · 141 阅读 · 0 评论 -
洛谷P3740 贴海报 线段树+染色问题
标签: 离散化、线段树、染色问题 思路: 很容易想到线段树的区间修改。具体怎么处理呢?我们给线段树的节点增加一个color属性,找到对应的区间给他染色。那么会出现几个问题。 假设一共有10个节点,加入对1-3区间染色,那么经过了的1-10区间如何处理? 我们将不能代表整个区间颜色的节点置为0。例如要对区间1-5染色,我们首先会经过1-10,然后递归来到1-5.这里我们只对1-5区间进行染色...原创 2019-07-06 13:54:20 · 335 阅读 · 0 评论 -
ACM-ICPC 2018 徐州赛区网络预赛 H. Ryuji doesn’t want to study 线段树+带权查询
ACM-ICPC 2018 徐州赛区网络预赛 H. Ryuji doesn’t want to study 标签 线段树 带权查询 简明题意 给一个序列,需要支持两种操作: 查询:查询L-R区间,a[l]×L+a[l+1]×(L−1)+⋯+a[r−1]×2+a[r]a[l]×L+a[l+1]×(L−1)+⋯+a[r−1]×2+a[r]a[l]×L+a[l+1]×(L−1)+⋯+a[r...原创 2019-07-18 08:43:52 · 108 阅读 · 0 评论 -
洛谷P2184 贪婪大陆 线段树+染色问题
洛谷P2184 贪婪大陆 标签 区间染色 简明题意 类似区间染色,操作1给出L,R涂色,操作2询问L,R的颜色数量。唯一不同的是这里的颜色会覆盖。n、m <= 1e5 思路 首先是暴力涂色,然而你还需要记录每个节点具体的颜色,时间复杂度爆炸 我们开两个数组num_l, num_r分别记录哪些地方有左端点,哪些地方有右端点。我们可以发现,当我们查询[L,R]区间地雷种类数时,...原创 2019-07-07 10:19:15 · 280 阅读 · 1 评论 -
计蒜客A1953 Lpl and Energy-saving Lamps 模拟+线段树
计蒜客A1953 Lpl and Energy-saving Lamps 标签 2018icpc南京站网络赛G题 模拟 线段树 简明题意 给一个序列a[i],指第i个房间要安装的灯的数量。每个月你都可以得到m展灯,然后每个月你都需要去给房间装灯,装灯的规则是这样的:一次访问每一个房间,如果一个房间需要装的灯数小于你手上拥有的灯,你就可以给它装了,否则你就把手上的灯留到下一个月。会给q个...原创 2019-07-17 20:02:43 · 226 阅读 · 0 评论