hdu2063
匈牙利算法。。。我套模版。。。。还是不理解。。
革命尚未成功,同志尚需努力。。。
#include<stdio.h> #include<string.h> #define MAX 505 bool map[MAX][MAX];//表示男女生是否相连 bool vis[MAX];//表示是否访问过y里的男生 int link[MAX];//link[j]表示y中的j元素当前与x中连接的元素 int m,n; bool searchPath(int u) { int v; for(v=1;v<=n;v++){ if(map[u][v]&&vis[v]==false){ vis[v]=true; if(link[v]==0||searchPath(link[v])){ link[v]=u; return true; } } } return false; } int main(){ int i,j,k,ans; while(scanf("%d",&k)&&k){ scanf("%d%d",&m,&n); ans=0; memset(link,0,sizeof(link)); memset(map,0,sizeof(map)); while(k--){ scanf("%d%d",&i,&j); map[i][j]=true; } for(i=1;i<=m;i++){ memset(vis,0,sizeof(vis));//每次更新 if(searchPath(i)) ans++; } printf("%d\n",ans); } return 0; }
。。。。
keep moving...