Loading [MathJax]/jax/output/HTML-CSS/jax.js

[SZKOpuł raj][POI2014]Rally

我从未见过有像SZKOpuł这样迷的OJ……

很好玩的一道题qwq

首先多源最短路太不好处理,我们搞一个超级源一个超级汇,分别和所有点连边。然后转成求超级源和超级汇的最长路。

我们不妨将这张图拓扑排序。然后我们思考对于拓扑排序得到的序列A,如果我们删除Ai的话,哪些路径不会收到影响?如果说有一个路径有一条边(u,v),满足uv在拓扑排序中分别位于Ai的两侧,那么这条路径不会受到影响。

反过来考虑每条边(u,v),过这条边最优的路径一定是从源到u的最长路加上1再加上从v到汇的最长路(用两遍DP就能搞出来),他能影响的点在拓扑排序中显然事一段区间。

然后问题变成区间取max了,然后不需要在线,所以随便做了。

代码: