CCPC Final 2018 题解
前人之述 已包含部分题目,此处不表。
D. Cube
为了方便,用 \(c_u\) 表示 \(u\) 当前走进的次数。
设 \(f_1(u),f_2(u)\) 表示当前走进 \(u\),\(fa\) 已经不能走,\(c_u = 1/2\),的权值期望。
设 \(p(u)\) 表示当前走进 \(u\),\(fa\) 还能走,但是最后死在 \(u\) 子树里的概率。
设 \(g(u)\) 表示在死在 \(u\) 子树里这个条件下,的权值的期望。
转移可以考虑,枚举 \(u\) 下一步走进一个儿子 \(v\):
- 路径不回到 \(u\),概率为 \(p(v)\),期望为 \(g(v)\)。
- 路径为 \(u\to v\to u\),概率是两个倒数乘积,此时 \(c_v=1\),还可以走 \(v\)。
- 非上面两种情况,路径为 \(u\to v\to \cdots\to v\to u\),概率为 \(1\) 减去上面的,此时 \(c_v=2\),不能走 \(v\)。
对后两种情况再分讨一下下一步走进哪个儿子(或被迫停在 \(u\))即可,因为此时 \(u\) 已经无法再进入,可以归到儿子的 \(f_1,f_2\)。
E. Mr. Panda and Cactus
每个环可以转化为一个从小到大排序的数组,第一次 cut 需要取前 2 个,后面每次取 1 个。
直接 dp 就是 \(O(nk)\)。
可能有 \(O(n\log n)\) 做法,咕。
F. Cones
求出所有点的 Voronoi Diagram,平面上每个点归进离它最近的那个 cone。
问题转化为求一个圆和凸多边形的交,在 cone 上垂直的体积。
将交差分为若干个扇形和三角形,分别积分。
用极坐标-半径的积分,扇形是容易的,三角形的话,先差分成直角三角形,然后要算 \(\int_{x=0}^{\theta} \sec^3 x dx\)。
懒得积分了,ask gpt。
H. Game on the Tree
这个不是我做的,搬运一下别人的
先处理一下自环和重边的情况(此时判定环为空)。如果 Panda 在环上,就检查所有点的距离;否则只检查所有不在环上的点的距离。
对于环上的点——先求出 Panda 和 Sheep 各自到环最近的点。如果 Sheep 比 Panda 先到达 Panda 与环的交点,Sheep 就能阻止 Panda 进入环,因此必胜;如果 Panda 比 Sheep 先到达交点,则需要检查所有环上点的距离。
如果 Sheep 比 Panda 先到达交点,就先把两者的位置都朝着环的方向推进一下,然后再检查:
- a)Sheep 是否会先触及所有逃生点;
- b)是否存在一个点 x,可以抑制 Panda 冲向环上的任意一个逃生点。
如果 a)或 b)中任意一个成立,则 Sheep 获胜;否则 Panda 必胜。
J. Mr. Panda and Sequence Puzzle
对于一个可以翻转的前缀 \(i\),设 \(f_i\) 为可以达到的字典序最小串。
假设下一个能翻转的前缀为 \(j\),那么 \(f_j = \min(f_i + s[i+1:j], \text{rev}(s[i+1:j])+f_i)\)。
用双端队列 + 哈希维护当前串,二分 hash 比较即可。

浙公网安备 33010602011771号