网络流模型
网络最大流
一张图,求从源点到汇点的最大流量。
Dinic \text{Dinic} Dinic
注意:如果原图为无向图,正反边权值都要设为 w w w。
const int N = 1e4 + 10, M = 2e5 + 10, Inf = 1 << 30;
int Head[N], Edge[M], Leng[M], Next[M], tot = 1;
int dep[N], now[N];
void addedge(int u, int v, int w){
Edge[++tot] = v, Leng[tot] = w, Next[tot] = Head[u], Head[u] = tot;
Edge[++tot] = u, Leng[tot] = 0, Next[tot] = Head[v], Head[v] = tot;
}
bool bfs(int s, int t){
queue<int> q;
memset(dep, 0, sizeof(dep));
q.push(s);
dep[s] = 1;
now[s] = Head[s];
while(!q.empty()){
int u = q.front();
q.pop()