首页 > 代码库 > [BZOJ 1486][HNOI2009]最小圈(二分答案+dfs写的spfa判负环)

[BZOJ 1486][HNOI2009]最小圈(二分答案+dfs写的spfa判负环)

题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1486

分析:容易想到先二分答案x,然后把所有边的权值-x,那么如果图中存在权值和为0的环那就最好不过了,说明我们找到了这个环,但如果存在负环,则说明我们的x还可以更小,如果不存在负环,则说明我们的x大了。所以接下来的问题是如何判断负环了。可以用spfa,但bfs做的会TLE,因为每个点的松弛不具有连续性,如果用dfs写的话则效率会大大提高。2009集训队论文中有涉及。

[BZOJ 1486][HNOI2009]最小圈(二分答案+dfs写的spfa判负环)