P3893【概率】聪聪和可可
问题描述
输入格式
数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数。
第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号。
接下来E行,每行两个整数,第i+2行的两个整数Ai和Bi表示景点Ai和景点Bi之间有一条路。
所有的路都是无向的,即:如果能从A走到B,就可以从B走到A。
输入保证任何两个景点之间不会有多于一条路直接相连,且聪聪和可可之间必有路直接或间接的相连。
输出格式
输出1个实数,四舍五入保留三位小数,表示平均多少个时间单位后聪聪会把可可吃掉。
样例输入 1
4 3
1 4
1 2
2 3
3 4
样例输出 1
1.500
样例输入 2
9 9
9 3
1 2
2 3
3 4
4 5
3 6
4 6
4 7
7 8
8 9
样例输出 2
2.167
令$F[x][y]$表示聪聪在$x$节点,可可在$y$节点时,聪聪吃到可可的期望步数。
那么令$tx=聪聪移动后的位置$
那么如果$x=y$,$F[x][y]=0$
如果$tx=y$,$F[x][y]=1$
否则,令$k=可可可能的移动位置$,$D[y]表示y的度数$
有$F[x][y]=(\sum F[tx][k] \times \frac{1}{D[y]+1})+1 $
然后用最短路算法或者BFS预处理出$tx$即可。
代码:
1 |
|