合集-SGT
摘要:先致敬 houzhe 学长经典: 我看到我的队友写了个又臭又长的线段树,维护了一堆 tag,于是一脚把他踹下去,写了个线段树维护矩阵,然后就过了。 回到这题,题意即为求一段连续的版本 中,所有版本的区间 的值的平方和。 首先显然可以变成 版
阅读全文
摘要:居然自己想出了 AGC E。 首先考虑删边再加红边的本质是什么。容易发现,如果一条目标树上的边当前还没有被加上,且这条边所连两点在原树上的路径被切断,则此时一定无解。因为不管怎么加删边,这都是一棵树,而此时两点路径上一定有红边。 所以,我们就可以得到此时可以新增一条边 的条件:路
阅读全文
摘要:STL 大法好! 常见套路1:区间没有相同元素-> 常见套路2:值域上连续一段-> 因为带修,1 的修改可以用 set 维护。为防止爆空间,用个 map 类似离散化。 其他直接线段树。 1:
阅读全文
摘要:强制在线是诈骗,还是很有意思的。 首先,如果没有强制在线就是一个 SGT 分治板子。强制在线看起来做不了,但是发现 。这启示我们不同的加边可能性不会太多。考虑先记录两种加边可能。 容易发现,如果当前时刻 可能操作 ,上一次可能的时刻是 \(
阅读全文
摘要:李超线段树二次离线。 容易发现,将和某个点 相邻的边权翻若干倍后,直径所在位置有两种可能:经过或不经过该点。不经过可以跑一次直接求,否则还要分类讨论一下。 那么它会作为直径的一个端点。 否则 直径会从一条边进,另一条边出。 前者是简单
阅读全文
摘要:居然差一点场切了。 首先可以将两棵树上对应的点看作一个点的两个不同状态考虑一个类似最短路的东西:设 为树上 状态的 点到 状态的最短路。考虑怎样维护这个值。 由于是树上路径问题,容易发现设 为树上 \
阅读全文
摘要:挺巧妙的题。 首先可以根据每个点出现时间知道每条边出现时间。然后就是一个 SGT 分治了……吗?发现如果对于每个时刻记录此时有哪些点和 联通,每次都要 的时间扫一遍,这样肯定是不行的。 那么怎么办呢?于是考虑在并查集合并一次的时候判断合并中的两个点中的一个是否与 \(1
阅读全文