标签:
int g[501][501],n,m; int vis[501],link[501]; ///link数组是记录匹配情况 int dfs(int x){ for(int i=1;i<=n;++i){ ///n是第二个集合的元素个数 if(!vis[i]&&g[x][i]){ vis[i]=1; if(!link[i]||dfs(link[i])){ link[i]=x; return 1; } } } return 0; } int xyl(){ int res=0; for(int i=1;i<=m;++i){ ///m是第一个集合里面元素个数 mst(vis,0); res+=dfs(i); } return res; }
标签:
原文地址:http://www.cnblogs.com/Kurokey/p/5427459.html