12.25模拟赛T2

原文链接:http://www.cnblogs.com/Miracevin/p/10175833.html

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]小的地方转移而来。

 

转载于:https://www.cnblogs.com/Miracevin/p/10175833.html

展开阅读全文
博主设置当前文章不允许评论。

没有更多推荐了,返回首页