CF1025G Company Acquisitions
CF1025G Company Acquisitions [* hard]
有一棵菊花树森林,每次操作为随机选择两棵树,然后随机将其中一棵的根作为另一棵菊花树的根节点的儿子,然后断开它和它所有儿子的边。
求这样操作下去,最后他们变成一棵大菊花树的期望次数。
\(n\le 500\),每个点是根或者是 \(x\) 的儿子给出。
Solution
神仙题。
考虑更抽象的描述这个题,给定一个序列 \(a\),保证 \(\sum a_i=n\),每次操作为选择两个点,然后将其中一个变成 \(a_i-1\) 个 \(1\),将另一个 \(+1\)
接着,本题有一个有趣的事实在于,最后的终止局面一定是固定的,初始局面是给定的,我们希望存在一个描述局面的势能函数 \(F(S)\) 满足期望意义下,每次操作一定会使得 \(F(S)\) 增加 \(1\),假设答案就是 \(F(S_{end})-F(S_{begin})\)
对于本题,我们不妨设 \(f(x)\) 表示当有 \(x+1\) 个点的时候的菊花树的势能函数,同时规定 \(F(S)=\sum f(a_i)\)
现在考虑每次操作,对势能函数的影响,不难发现改变量即:
\[\frac{1}{2}(f(a+1)+(b-1)f(0)+f(b+1)+(a-1)f(0))-f(a)-f(b)=1
\]
如果规定 \(f(0)=0\),那么就有:
\[\frac{f(a+1)+f(b+1)}{2}-f(a)-f(b)=1
\]
由于需要对任意 \(a,b\) 成立,所以这应该是一个统一的关系,所以有 \(\frac{f(a+1)}{2}-f(a)=\frac{1}{2}\)
所以 \(f(a+1)=1+2f(a)\)
不难得到 \(f(x)=2^x-1\) 的答案。
所以最终局面为 \(f(n-1)\),得到答案是 easy 的。