解题思路
评分是 ∑(M+1−dfn[i])ci,所以先算出每个点的期望 DFS 序,再枚举「改哪一个点」。
- 根的序恒为 1。若 u 只有一个孩子 v,则 E[dfn[v]]=E[dfn[u]]+1。若有两个孩子 a,b,先走 b 的概率是 cb/(ca+cb),于是 E[dfn[a]]=E[dfn[u]]+1+ca+cbcb⋅sz[b],b 对称。
- 不改任何点时,期望评分 B 可 O(M) 算出。
- 把 x 的货量改成 H:自身贡献变成 H⋅(M+1−E[dfn[x]])。仅当 x 有兄弟 s 时,改 cx 才会改写 x 与 s 两棵子树内部所有点的期望序,变化量分别是常数 Δx,Δs,对评分的影响也是 O(1) 可算。
- 根或独子改权值不改变任何概率。枚举每个 x 取最大,并与 B 比较。