题目:
那个边数的限制,只要把边权乘1001再+1即可。乘1001是因为有1000条边,这样流量小的不会因为边数多而被认为不优。不是乘1000是为了/1001和%1001取出答案,1000的话略有冲突。
#include#include #include #include #define ll long longusing namespace std;const int N=35,M=1005;const ll INF=0x3f3f3f3f3f3f3f3f;int n,m,hd[N],cur[N],xnt=1,dfn[N];int q[N],he,tl;ll mxflow;struct Ed{ int nxt,to,cap; Ed(int n=0,int t=0,int c=0):nxt(n),to(t),cap(c) {}}ed[M<<1];void add(int x,int y,int z){ ed[++xnt]=Ed(hd[x],y,z);hd[x]=xnt; ed[++xnt]=Ed(hd[y],x,0);hd[y]=xnt;}bool bfs(){ memset(dfn,0,sizeof dfn); dfn[1]=1; he=tl=0; q[++tl]=1; while(he