二元费用模型基本题hhhh,以前一直以为这个题和happiness是一个。。。
#include#define ll long long#define pb push_backconst int maxn=30005;const int inf=1<<30;using namespace std;vector g[maxn];struct lines{ int to,flow,cap;}l[maxn*73];int t=-1,S,T,d[maxn],cur[maxn];bool v[maxn]; inline void add(int from,int to,int cap){ l[++t]=(lines){to,0,cap},g[from].pb(t); l[++t]=(lines){from,0,0},g[to].pb(t);} inline bool BFS(){ queue q; memset(v,0,sizeof(v)); q.push(S),v[S]=1,d[S]=0; int x; lines e; while(!q.empty()){ x=q.front(),q.pop(); for(int i=g[x].size()-1;i>=0;i--){ e=l[g[x][i]]; if(e.flow