洛谷
P3386 【模板】二分图最大匹配
#includeusing namespace std; int mp[505][505],m,n,e,used[505],link[505]; bool dfs(int i){ for(int j=1;j<=n;j++){ if(mp[i][j]&&!used[j]){ used[j]=1; if(link[j]==-1||dfs(link[j])){//若j没有匹配或者j能找到其他匹配的人 link[j]=i; //则将i匹配给j return 1; } } } return 0; } void hungary(){ int res=0; for(int i=1;i<=m;i++){ memset(used,0,sizeof(used)); if(dfs(i))res++; } cout< >m>>n>>e; while(e--){ cin>>u>>v; mp[u][v]=1; } memset(link,-1,sizeof(link)); hungary(); }



