1.右边如果没匹配就匹配(link[v]==-1) 2.如果右边匹配过了...就从右边点找左边的匹配点再搜索看是否能增广 以上两种情况都能使匹配边+1 这就是找二分图最大匹配的最简单算法了,代码很短,时间复杂度为O(n^3),网络流当然也能实现咯... 记住咯: ...
intlink[MAXN]; //link[v]=u表示右边对左边的匹配 boolused[MAXN];//是否访问过 booldfs(intu)//从左边开始找增广路径 { intv; for(v=0;v<vN;v++)//右边顶点编号从0开始 { if(g[u][v]&&!used[v]) //如果存在通路,且从u开始搜索时该点没访问过 { used[v]=true; if(link[v]==-1 |...
C语言 [二分图最大匹配] 匈牙利算法!,代码实现:constintINF=0x3f3f3f3f;constintMAXN=510;intuN,vN;//u,v数目intg[MAXN][MAXN];//构图intlink[MAXN];//link[v]=u表示右边对左边的匹配boolused[MAXN];//是否访问过b