线段树
klchen0112
这个作者很懒,什么都没留下…
展开
-
Tunnel Warfare HDU - 1540
题意: 1. 从N个村庄(标号1到N)村庄彼此相连,如果未被摧毁 2. 三种操作 - 摧毁第x个vilage - 询问包含x在内最长连续的未摧毁城市个数 - 恢复最后一个城市 节点的定义: 1. start(起点),end(结束点) 2. Mlen(最长长度),Len(以start为起点的最长连续村庄长度),Rlen(以end为结束最右连续村庄的长度) 思...原创 2018-05-24 15:38:40 · 198 阅读 · 0 评论 -
Glad You Came hdu 6356
思路 1. 因为是大于区间中的值更新,故可以使用区间最小值进行优化优化 2. 递归更新至叶节点,暴力计算 #include <cstdio> #include <iostream> #include <algorithm> using namespace std; const int MAX_N = 1e5 + 100; const int MAX_M...原创 2018-08-10 20:11:15 · 115 阅读 · 0 评论 -
poj 3667 Hotel 线段树区间合并
线段树区间合并模板题 注意查询好时的操作 1. 优先查询左子树 1. 当左子树的lsum >= K 返回l 2. 返回左子树r - rsum + 1 2. 返回右子树 被 1 - N 的更新卡了好久,写篇题解记录 #include <cstdio> #include <iostream> #include <algorithm&原创 2018-08-12 23:42:39 · 134 阅读 · 0 评论 -
Interesting-Array-CodeForces-482B
又是二进制相关的问题 注意如下性质 val[rt] = K 者定有val[rt<<1] & val[rt<<1|1] 为K 这是判断是否合法的依据 一开始想的做法是动态插入,事实上会遇到很多难以处理的问题 看了题解知道正解是将所有约束条件插入,再查询是否合法 显然可以知道对于区间[L,R] 的二进制每一位至少为K的二进制,易得这里是取到了区间最小的解 注意使用laz...原创 2019-04-09 22:18:46 · 148 阅读 · 0 评论