概率充电器
换根DP好题
设\(f[i]\)表示只考虑\(i\)及其子树的时候,\(i\)通电的概率
有
化简为
其中\(v\)是\(i\)的儿子,\(p_{(v,i)}\)表示这条边的概率
解释一下:分两种情况,
若\(i\)自己亮了,那么样本空间剩下的边和点随便是什么状态都可以
若\(i\)自己没亮,那么必须要至少有一个儿子亮了且这条边一定能够通电。我们考虑这种情况的反面,对任意一个儿子\(v\),它不亮的概率是\(1-f[v]\),亮了但是边不通电的概率是\(f[v](1-p_{(v,i)})\),两者加起来即可。再将上述结果累乘就是反面的概率
我们再设\(g[i]\)表示\(i\)的父亲\(fa\)在不考虑\(i\)及其子树的情况下通电的情况,\(dfa\)表示\(fa\)的父亲
有
,其中\(v\)是\(fa\)的儿子
情况讨论是类似的,想一下这个公式怎么来的
注意求\(f\)和\(g\)的过程中,我们是用整体的累积除以某一个概率来优化的,但是这个概率是可能为\(0\)的,一定要加以判断
然后设\(ans[i]\)表示\(i\)通电的概率,有
,其中\(fa\)是\(i\)的父亲
解释一下:最终\(i\)通电要么是由于子树的原因,要么子树没有能够供电,然后父亲来供电
然后可以看一下这篇题解
注意这篇题解,设置的状态就是没有通电,这样其实跟我们上面的推导本质是一样的,但是肯定更加简洁。所以以后遇到考虑反面的情况,不妨直接按照反面设置状态
然后还要特别注意一个点,这篇题解设\(DP_i\)是\(i\)的父亲没有电传到\(i\)的概率,而不是父亲不考虑\(i\)这棵子树被通电的考虑,这两个是完全不同的
update 2024.5.4
其实最好理解的还是这种操作
将三种状态(\(x\)自身通电,\(x\)通过其子树通电,\(x\)通过其父亲通电)分开考虑
第一种不说了
第二种,设\(f[i]\)表示\(i\)通过其子树供电的概率,有$$f[i]=1-\prod_{u∈son_i}(1-l_u+l_u(1-q_u)(1-f_u))$$,其中\(q_u\)表示\(u\)自身通电的概率,\(l_u\)表示\((i,u)\)这条边的长度
第三种,设\(F[i]\)表示\(i\)通过其父亲供电的概率,有$$F[i]=l_i(q_{fa}+(1-q_{fa})(F_{fa}+(1-F_{fa})(1-\prod_{u∈son_{fa}且u≠i}(1-l_u+l_u(1-q_u)(1-f_u)))))$$
最后的\(ans\)见代码就好了