20250830
https://www.luogu.com.cn/contest/249974
T1
?
看完就会,发现肯定先操作 2,再操作 1。BFS 即可。
T2
??
下文 \(n\) 为原题中 \(n - 1\)。表示当前满二叉树有 \(2^n\) 个叶子,记叶子高度为 \(0\),则树高为 \(n\)。
看着就很二分,考虑二分答案之后 DP。
假设确定黑点之间最大距离为 \(m\),设 \(f(x, k)\) 为:当前树高为 \(x\),根到子树内最近的黑点的距离 \(\ge k\),最大化能够放置的黑点个数。注意 \(k \in [0, m]\),转移是容易的。
应当对 \(10^{18}\) 取 \(\min\) 避免溢出。交一发 50pts.
打表发现 \(m \ge 120\) 时,前面都是 INF,后面是 \(2^{59}, 2^{59}, 2^{58}, 2^{58}, \dots, 4, 4, 2, 2\),判掉即可 AC。
相当于直接把黑点放在叶子上,这是合理的。
T3
本题存在 Kruskal 重构树、树剖套平衡树(非 LCT)等做法,但实现相对复杂,SATT 做法则比较困难,这里讲解 相对简单的平衡树做法。
???
优先最大化 \(\sum_{i=1}^{n-1} 2|V_L||V_R|c_{e_i}\),然后最小化 \(\sum_{i=1}^{n-1} ic_{e_i}\),最后字典序。
看着就很需要排序。手玩样例,大胆猜想按照边权从大到小排序,直接交一发暴力获得 15pts,写个 Kruskal 重构树 + 树状数组,交上去直接 AC。
显然满足第二个式子最小。若边 \(p\) 和 \(q\) 相邻,\(c_p > c_q\),作差发现 \(p\) 在前时第一个式子更大,那么降序时最大。
T4
????