感觉题意好迷啊= =,读懂,就知道是模板题了。
求最小割集中边数最少,有两种解法,比赛中我用的第一种,据别人说第二种会超时,没测试过。hdu3987应该是两种都能用的。
第一种:
建边的时候每条边权 w = w * (E + 1) + 1; E为一大数
这样得到最大流 maxflow / (E + 1) ,最少割边数 maxflow % (E + 1)。
第二种:
建图,得到最大流后,图中边若满流,说明该边是最小割上的边
再建图,原则:满流的边改为容量为 1 的边,未满流的边改为容量 INF 的边,然后最大流即答案。
#include <algorithm>
#include <cstring>
#include <queue>
#include <cstdio>
using namespace std;
const int MAXN =