题意:
给一棵树。
每次等可能地选个节点,去掉其代表的子树。
求消掉整棵树的期望。
思路:
把最终的期望看成是每个节点的期望值和。
消掉一个节点有两种方式
1)消去祖先
2)该节点被直接选择
E(u) = 1 * 1 / dep(u) + 0 * 1 / ( dep(u) - 1 )
dep(u) 等于根到u的路径上的节点数
void dfs(int fa, int u, int dep) {
ans += 1.0 / dep;
for(int v:graph[u])
if ( v != fa ) dfs(u, v, dep + 1);
}
本文探讨了一种基于树形结构的算法,旨在计算消掉整棵树的期望值。通过分析每一步操作的概率及其对最终结果的影响,提出了一个有效的方法来解决这一问题。
&spm=1001.2101.3001.5002&articleId=48402593&d=1&t=3&u=0c9d89282e2c4ba6ab1f8eb0b072f21f)
949

被折叠的 条评论
为什么被折叠?



