数据是不是水了点
查看原帖
数据是不是水了点
292300
Kobe303楼主2022/8/10 14:45

我 Dinic 写成这样都能过。。

int dinic(int u, int flow) {
	if (u == T) return true;
	int res = flow;
	for (int &i = now[u]; i; i = nxt[i]) {
		int v = ver[i], w = wei[i];
		if (w && d[v] == d[u] + 1) {
			int k = dinic(v, min(res, w));
			if (!k) d[v] = 0;
			wei[i] -= k, wei[i ^ 1] += k, res -= k;
		}
		if (!res) break;
	}
	return flow - res;
}

注意这一句:

if (u == T) return true;
2022/8/10 14:45
加载中...