https://www.luogu.org/blog/a23333/post-xing-xuan-mu-ni-sai-path-ji-wang-zui-duan-lu
如果设f[i]表示从i到n的期望
那么转移方程比较好列。
但是取min的环形转移?
反过来想,
如果我们知道了f[x]的大小关系,
其实,可以化简成
其实就是,我们把一些min变成f[x]然后再消一消。
其实转移貌似没有环了?
但是我们不知道大小关系。
一些边没有用,度数减少一些。
只有比f[x]小的f[y]会转移到x,感觉和最短路有关?
实际上,
把f[n]=0放进堆里,跑一个堆优化dij,每次取出最小点更新相邻的点的f值。
用分析法或者加权平均数可以证明:f[x]<f'[y]<f[y]
所以,这个转移是有意义的,并且转移完成之后,f[y]不可能比f[x]小使得转移变得不合法
而且,可以证明,一个f值被取出的第一次,就是最终的f值。因为能转移到的一定都更新了,不会越更新越小导致能再转移过来。
然后开心dij一下即可。
不放心的话,可以观察最后的实际转移情况,所有转移一定是从比f[x]小的地方转移而来。