#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,k;
int mat[110][110];
int link[110];
int vis[110];
bool find(int u)
{
int v;
for(v=0;v<m;j++)
if(g[u][v]&&!vis[v])
{
vis[v]=true;
if(link[v]==-1||find(link[v]))
{
link[v]=u;
return true;
}
}
return false;
}
int pipei()
{
int res=0;
int u;
memset(link,-1,sizeof(link));
for(u=0;u<n;u++)
{
memset(vis,0,sizeof(vis));
if(find(u)) res++;
}
return res;
}
int main()
{
int i,j;
int from,to;
while(scanf("%d",&n),n)
{
scanf("%d%d",&m,&k);
memset(mat,0,sizeof(mat));
for(i=0;i<k;i++)
{
scanf("%d%d%d",&j,&from,&to);
if(from>0&&to>0) mat[from][to]=1;
}
int ans=pipei();
printf("%d\n",ans);
}
return 0;
}
http://m.blog.csdn.net/blog/ZYY173533832/10239415
hdu 1150 Machine Schedule (二分图匹配)
原文:http://www.cnblogs.com/sola1994/p/4735673.html