随笔分类 - 线段树
摘要:Bipartite Checking 感觉这种题写过很多次啦。 删边很难操作, 我们把边的影响区间丢到线段树上, 就全部变成加边了。 我们用按秩合并并查集维护每个点到根的奇偶性, 合并的时候能在小的子树的根打个标记。
阅读全文
摘要:Camping Groups 我们先计算出, 每个点当leader所能掌控的最多人数。 然后我们把询问离线, 丢到responsibility最大的那个地方去。 然后从大到小往线段树里加人, 加入完之后处理掉当前的询问。 如果强制在线的话就只能树套树啦。
阅读全文
摘要:Dividing Kingdom 9!枚举, 码就完事了。
阅读全文
摘要:Greedy Subsequences 我们先找到每个点的右边第一个比它大的, 然后从大的往它建边, 然后可以发现这是一棵树。 我们令d[ i ] 为 i 号点往上走最多能走几步, 我们能用线段树维护d 的值。 我们加入点 i 的时候, 我们把它的值设为 d[ fa ] + 1, 我们删除 i 的时
阅读全文
摘要:Power Tree 没想到一个点到 1 的贡献和到 u 的贡献存在比例关系, 只要乘以 deg[ u ] * m[ u ], m[ u ] 表示 u 到 1, 所成的系数。 然后我们用dfs序建出线段树后, 维护每个点乘的系数, 区间值的和就可以了。
阅读全文
摘要:Two Permutations 关键是没想到按大小顺序把第二个排列一个一个加入线段树, 然后线段树维护整体的hash值, 得到的hs值减去一个sub 之后与, 第一个排列的hash值比较。
阅读全文
摘要:TorCoder 开26个线段树维护数量, 然后就没了。。
阅读全文
摘要:把式子二项式展开之后, 会发现是需要维护a[ i ], i * a[ i ] .... i ^ 5 * a[ i ], 的区间和, 然后用线段树维护。
阅读全文
摘要:Optimize! 这个题目代码看了我半天。。 我们把终点关注在b数组, 我们先将b[ i ] 变成 h - b[ i ]并排好序, 对于一个a[ j ]来说如果它能和b[ i ]匹配, 那么它能和b[ k ], k < i, 匹配。 什么情况下能匹配成功呢, 就是b数组中 前 i 个数至少能和 l
阅读全文
摘要:Jamie and Tree 我们按 1 号点为根建dfs序线段树。即使换了根, 我们也能通过分类讨论去更新求答案。
阅读全文
摘要:Till I Collapse 对于每个 k, 考虑贪心地取, 最多分成 n / k段, 每段都贪心取的话, 总次数为nlogn 用线段树维护这个过程, 在线段树上二分就可以了。
阅读全文
摘要:Nearest Leaf 没想到在dfs的过程中用线段树维护所有点到当前点的距离。
阅读全文
摘要:Fire in the City 二分答案, 用扫描先加线段树去check
阅读全文
摘要:Tree Generator™ 两点间的距离为 depth[ u ] + depth[ v ] - 2 * depth[ lca ] 给的字符串可以看成dfs序, 对于x, y 下标, x < y, 他们的lca的肯定在x - y 之间并且dpeth最小。 问题转换成a[ x ] - 2 * a[
阅读全文
摘要:New Year and Old Subsequence 第一感觉是离线之后分治求dp, 但是感觉如果要把左边的dp值和右边的dp值合起来, 感觉很麻烦而且时间复杂度不怎么对。。 然后就gun取看题解了, 用线段树维护dp的值, 然后区间合并求答案。 每个节点保存dp[ i ][ j ]表示, 把当
阅读全文
摘要:Chemistry Experiment 维护一个权值线段树,然后二分答案。
阅读全文
摘要:E - Forensic Examination 我也不知道为什么这个复杂度能过, 而且跑得还挺快, 数据比较水? 在sa上二分出上下界, 然后莫队 + 线段树维护区间众数。
阅读全文
摘要:最关键的一点就是 f[ 0 ] * a[ 0 ] + f[ 1 ] * a[ 1 ] + ... + f[ n - 1] * a[ n - 1] f[ 1 ] * a[ 0 ] + f[ 2 ] * a[ 1 ] + ... + f[ n ] * a[ n - 1] f[ 2 ] * a[ 0 ]
阅读全文
摘要:Periodic RMQ Problem 动态开点线段树直接搞, 我把它分成两部分, 一部分是原来树上的, 一部分是后来染上去的,两个部分取最小值。 感觉有点难写。。 简化 指针
阅读全文
摘要:Yaroslav and Points 明明区间合并一下就好的东西, 为什么我会写得这么麻烦的方法啊啊啊。
阅读全文

浙公网安备 33010602011771号