有源汇有上下界最大/最小流
建图还是要想一想的...写一下吧 首先根据有源汇可行流建图,正向附加边满流证明有可行流 然后在这个残量网络上删掉 $(t,s,oo)$ 这条边,跑 $s->t$ 最大流就是最大流,$t->s$ 最大流就是最小流 #include <bits/stdc++.h> #define int long long #define LL long long #define rep(i, s, t) for (register int i = (s), i##end = (t); i <= i##end; ++i) #define dwn(i, s, t) for (register int i = (s), i##end = (t); i >= i##end; --i) using namespace std; inline int read() { int x = 0 , f = 1 ; char ch; for (ch = getchar(); !isdigit(ch); ch = getchar()) if (ch == ' - ' ) f = - f; for (; isdigit(ch); ch = getchar()) x = 10 * x + ch - ' 0 ' ; return x * f; } const int maxn = 500010 ; struct Dinic {