图片加载可能有点慢,请跳过题面先看题解,谢谢
还是先缩点吧,把那些已经可以互相到达的点缩起来。(直接暴力 \(dfs\) 缩就行)
我们设
\(f(x,S)\) 为,当前在
\(x\) 点,已经已经处理完的点的状态为
\(S\) (一个二进制数)的期望值(这里的点是缩点之后的点)
那么假设这时我们已经处理完的点数为
\(ret\) ,则我们走到没处理完的点上的概率为
\(\frac{n-ret}{n-1}\),所以我们需要走平均
\(\frac{n-1}{n-ret}\) 次才能走到那些未处理的点上
所以有转移:
\(f(x,S)=\sum_{!(S\wedge (1<<i))}{\frac{f(i,S\vee (1<<i) )*size[i]}{n-ret}}\) //made by Hero_OF_Someone#include #include #include #include #include