题目链接:http://codeforces.com/gym/101808/problem/K
这题第一眼看上去是树上最短路,但麻烦的是它有n条边不是树。这张图仅有一个环,我们尝试讨论特殊情况把它转化为树上最短路来做。
我们忽略环强行建树,设环上的两个点为X和Y,两点之间的边权为Z,任何两个点经过数根的路径的距离为f(a,b),那么a和b之间的最短路一定等于min{f(a,b),f(a,X)+f(b,X),f(a,Y)+f(b,Y),f(a,X)+f(b,Y)+Z,f(a,Y)+f(b,x)+Z}
1 |
|