#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int ai,bi,id;
int g[105][105];
int linker[105];
int used[105];
int dfs(int x){
for(int i=0;i<m;i++){
if(g[x][i]&&!used[i]){
used[i]=1;
if(linker[i]==0||dfs(linker[i])){
linker[i]=x;
return 1;
}
}
}
return 0;
}
int hungary(){
int r=0;
memset(linker,0,sizeof(linker));
for(int i=0;i<n;i++){
memset(used,0,sizeof(used));
if(dfs(i)) r++;
}
return r;
}
int main()
{
while(scanf("%d",&n)!=EOF){
if(n==0) break;
scanf("%d%d",&m,&k);
memset(g,0,sizeof(g));
for(int i=0;i<k;i++){
scanf("%d%d%d",&id,&ai,&bi);
if(ai!=0&&bi!=0) g[ai][bi]=1;
}
printf("%d\n",hungary());
}
return 0;
}
hdu1150
最新推荐文章于 2021-08-16 10:12:15 发布