标签:接下来 str 技术分享 bzoj1001 htm 种类型 desc img oj1001
输出一个整数,表示参与伏击的狼的最小数量.
3 4 5 6 4 4 3 1 7 5 3 5 6 7 8 8 7 6 5 5 5 5 6 6 6
14
读了题后的第一反应是欢喜地打了个EK求最小割,然后就TLE了。
然后去读了一下题解,发现里面都提到了把题目转化为对偶图中的最短路。之前并不知道有这种操作,便去更加深入地了解了一下,发现真的很神奇!(可惜只适用于平面图)
改算法的思路大概是这样的:
将平面图上的每一个“面”转化为一个点,并在它们之间连边。显而易见地,每一条新连接的边都会和原图的一条边相交,与之相交的原图的边的容量便是该边的边权。最后将源点和汇点之间连一条边使得图的外部被分为两个平面,分别作为对偶图的起点和终点。此时很明显原图的最小割已经被转化为对偶图上的最短路了。最短路的距离可以通过各种算法实现,例如 Dijkestra。
下面的图也许可以帮助更好地理解:
另外推荐阅读周冬的《浅析最大最小定理在信息学竞赛中的应用》,里面也有很详细的解释。
标签:接下来 str 技术分享 bzoj1001 htm 种类型 desc img oj1001
原文地址:http://www.cnblogs.com/blogo-de-vk/p/bzoj1001.html