| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:哪里WA了 求大神指教In Reply To:哪里WA了 求大神指教 Posted by:rabbit_lb at 2016-05-31 19:58:42 > #include<stdio.h> > #include<string.h> > #include<stdlib.h> > #include<limits.h> > #include<vector> > #define min(a,b) (a)<(b)?(a):(b) > > using namespace std; > > struct node > { > int to,ca,re; > }; > > typedef vector<node> edge; > > edge G[1000]; > bool used[1000]; > > void add_edge(int s,int t,int c) > { > G[s].push_back((node){t,c,G[t].size()}); > G[t].push_back((node){s,0,G[s].size()-1}); > } > > int dfs(int v,int t,int f) > { > if(v==t) return f; > used[v]=true; > for(int i=0;i<G[v].size();i++) > { > if(!used[G[v][i].to]&&G[v][i].ca>0) > { > int d=dfs(G[v][i].to,t,min(G[v][i].ca,f)); > if(d>0) > { > //printf("%d ",v); > G[v][i].ca-=d; > G[G[v][i].to][G[v][i].re].ca+=d; > return d; > } > } > } > return 0; > } > > int max_flow(int s,int t) > { > int flow=0; > while(true) > { > memset(used,false,sizeof(used)); > int f=dfs(s,t,INT_MAX); > //printf("\n"); > if(f==0) return flow; > flow+=f; > } > } > > int main() > { > /*add_edge(0,1,10); > add_edge(0,2,2); > add_edge(1,2,6); > add_edge(1,3,6); > add_edge(2,4,5); > add_edge(3,2,3); > add_edge(3,4,8); > printf("%d",max_flow(0,4));*/ > int n,f,d; > scanf("%d%d%d",&n,&f,&d); > int s=n*2+d+f,t=n*2+d+f+1; > for(int i=0;i<f;i++) > { > add_edge(s,n*2+i,1); > } > for(int i=0;i<d;i++) > { > add_edge(n+2+f+i,t,1); > } > for(int i=0;i<n;i++) > { > add_edge(i,n+i,1); > int tf,td; > scanf("%d%d",&tf,&td); > for(int j=0;j<tf;j++) > { > int tmp; > scanf("%d",&tmp);tmp--; > add_edge(n*2+tmp,i,1); > } > for(int j=0;j<td;j++) > { > int tmp; > scanf("%d",&tmp);tmp--; > add_edge(n+i,n*2+f+tmp,1); > } > } > /*for(int i=0;i<n*2+f+d+2;i++) > { > printf("%d|",i); > for(int j=0;j<G[i].size();j++) > { > printf("%d ",G[i][j].to); > } > printf("\n"); > }*/ > printf("%d\n",max_flow(s,t)); > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator