网站建公司简介,vs2012 网站开发,ps做图 游戏下载网站有哪些内容,网站做专题提升权重还说还剩十分钟A一道水题#xff0c;然后发现和善意的投票一模一样粘个代码过去直接A。。。 装作自己又写了一道题。 题面 //Twenty
#includecstdio
#includecstdlib
#includeiostream
#includealgorithm
#includecmath
#include…还说还剩十分钟A一道水题然后发现和善意的投票一模一样粘个代码过去直接A。。。 装作自己又写了一道题。 题面 //Twenty
#includecstdio
#includecstdlib
#includeiostream
#includealgorithm
#includecmath
#includecstring
#includequeue
#includevector
const int maxn20050,maxm200050,INF0x7f7f7f7f;
using namespace std;
int n,m,s,t,u,v,w,ecnt1,fir[maxn],d[maxn],cur[maxn],c[maxn],p[maxn];
struct edge {int from,to,cap,flow,nxt;edge(){}edge(int from,int to,int cap,int flow,int nxt):from(from),to(to),cap(cap),flow(flow),nxt(nxt){}
}e[maxm];
void add(int u,int v,int w) {e[ecnt]edge(u,v,w,0,fir[u]); e[ecnt]edge(v,u,0,0,fir[v]); fir[u]ecnt-1; fir[v]ecnt;
}
queueintque;
void bfs(int s,int t) {for(int i1;in;i) d[i]n;d[t]0; que.push(t);while(!que.empty()) {int xque.front() ;que.pop();for(int ifir[x];i;ie[i].nxt) if(d[e[i].to]ne[i].flowe[i].cap) {d[e[i].to]d[x]1;que.push(e[i].to); }}
}
int cal(int s,int t) {int flINF;for(int xt;x!s;xe[p[x]].from) flmin(fl,e[p[x]].cap-e[p[x]].flow);for(int xt;x!s;xe[p[x]].from) {e[p[x]].flowfl;e[p[x]^1].flow-fl;}return fl;
}
int maxflow(int s,int t) {bfs(s,t);int res0;for(int i1;in;i) cur[i]fir[i],c[d[i]];for(int xs;d[x]n;) {if(xt) {rescal(s,t);xs;}int ok0;for(int icur[x];i;ie[i].nxt) if(d[e[i].to]1d[x]e[i].cape[i].flow){p[xe[i].to]i;ok1; break;}if(!ok) {cur[x]fir[x]; int Mn;for(int icur[x];i;ie[i].nxt) if(e[i].cape[i].flow)Mmin(M,d[e[i].to]1);if(!(--c[d[x]])) break;c[d[x]M];if(x!s) xe[p[x]].from;}}return res;
}
int main()
{scanf(%d%d,n,m);sn1; tn2;for(int i1;in;i) {int x;scanf(%d,x);if(x1) add(s,i,1),add(i,t,0);else add(s,i,0),add(i,t,1);}n2;for(int i1;im;i) {int x,y;scanf(%d%d,x,y);add(x,y,1);add(y,x,1);}printf(%d\n,maxflow(s,t));return 0;
} View Code 转载于:https://www.cnblogs.com/Achenchen/p/7608820.html