2024.10.15总结
但是我 A 没去 freopen
A:
随机数据大🐍。
对于一个 ,至多有一个 ,因此所有点构成一个森林。
对于两个点暴力跳祖先即可,数据随机,期望每次缩小一半,可过。
B:
首先每行保留前 个点,这样有效点数就减少到了 量级,每次钦定右侧某个点必选,再枚举与它匹配的左侧点,这就要求排在当前这个点前的右侧点都能被其他左侧点选择,加入队列重复这个过程即可,若队列长度大于 则直接跳出。
C:
考虑拆贡献,等价于对于每个点集,选一个给出 的贡献,剩下是 的贡献,加起来。
记 表示 子树里,有 个点未被取且给出 的贡献, 个未被取且给出 的贡献。
分类讨论当前子树根是否取,转移即可。
核心代码这样:

D:
*3500 改牛魔。