2014-9 AC题目汇总
2014 - 09 - 10
ZOJ 2788 网络流
巧妙的建图方式:正向边流量为INF,反向边流量为1。这样求一遍网络流之后,通过比较最大流和INF的大小,就能知道是否有正向边存在于源点汇点之间。 代码
2014 - 09 - 11
sgu 194 无源汇有上下界最大流
无源汇有上下界网络流求可行解
1. 将原网络中的边流量改为 up - low
2. 为了维持每个结点流量平衡,构造一个超级源点,一个超级汇点
3. 统计每个点流入的low值以及流出的low值和,流入为正,流出为负
4. 如果tot[i]为正,则源点向其连边,流量为tot[i]。如果为负,该点向汇点连边,流量为 - tot[i]
5. 做一次最大流,如果从源点流出的每一条边都满流,则存在可行流
ZOJ 3229 有源汇有上下界的最大流
有源汇有上下界的最大流
1. 在原先的网络流基础上,增设一个超级源点,一个超级汇点。
2. 然后从原先的汇点向源点连接一条流量为INF的边。转化为成无源汇有上下界的可行流
3. 对超级源点和超级汇点做一次网络流,如果没有可行流(即从源点出发每条边都满流)退出, 否则继续。
4. 在有可行流的基础上,删除超级源点、超级汇点,对原先的源点和汇点再进行一次网络流,得到最大流。
5. 此时每条边上的可行流加上下界即为对应的流量。
sgu 176 有源汇有上下界的最小流 解题报告
2014 - 09 - 15
POJ 2396 有源汇有上下界的可行流 解题报告
2014 - 09 - 17
POJ 3422 最小费用最大流 解题报告
POJ 2195 最小费用最大流 代码
给定一个n*m的图,其中有k个人和k个房子,每个人要走进房子里,每个房子只能容纳一人。每个人向相邻的走一步消耗1点值,问最少的消耗值,使得m个人都走进房子。
这道题目实际上是求二分图的最小权匹配,可以用KM算法做。