摘要: http://wenku.baidu.com/view/56c85dfafab069dc502201a3.html一道非常经典的割的应用。 阅读全文
posted @ 2013-05-06 16:46 沐阳 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题意:给定若干个房间,现在这些房间之间能够相互的联通,房间门是单向的,现在问一些门中都有人的情况下,至少要堵住多少条门才能够使得无法到达终点。解法:显然这是一个集合的分割问题,即求这样的一个割:使得终点房间与某些存在人的房间的一个分割,题中求的最少的人就是求解一个最小割。将问题转化为网络流求解。通过建立从超级源点到存在人的一些房间,那么从汇点反向遍历寻找这样的一个割。如果从源点到有人房间的边满流,那么反向遍历一定不会将这个节点划分到汇点集合里面去,如果该边不满流的话,如果划分到了汇点集合,则表明存在从源点到汇点的流量,于最大流相悖。因此所求既满足题意。代码如下:#include <cst 阅读全文
posted @ 2013-05-06 16:16 沐阳 阅读(363) 评论(0) 推荐(0) 编辑