2012年8月11日
摘要: ZOJ_2532 一种比较好想到的思路就是枚举每条边,将容量增加1,看这样最大流和之前的是否相等,但这样复杂度太高。 于是不妨换种思路,假设现在满流了,我们会考虑增加哪些边的容量呢?显然是满流的边。那么增加了这条边的容量之后,总流量在什么条件下会增加呢?产生一条新的增广路(不知道这个这个名词用得是否恰当,大家意会吧……)。 搞清楚上面的问题之后就会得到一个复杂度较好的算法,枚举做完最大流之后的每条边u->v,如果这条边满流,并且存在S到u的增广路以及v到T的增广路,那么增加这条边的容量就会增大总流量。判断S到u有无增广路可以先用dfs预处理一下,从S点开始只沿非满流的边走,能够到达某个位 阅读全文
posted @ 2012-08-11 16:21 Staginner 阅读(517) 评论(0) 推荐(1) 编辑