#include<bits/stdc++.h>
using namespace std;
const int M = 510;
int k,m,n;
int g[M][M],link[M];
bool vis[M];
bool dfs(int u){
for(int v = 0;v<n;v++)
if(g[u][v]&&!vis[v]){
vis[v] = true;
if(link[v]==-1||dfs(link[v])){
link[v] = u;return true;
}
}
return false;
}
int hungary(){
int res = 0;memset(link,-1,sizeof link);
for(int u = 0;u<m;u++){
memset(vis,false,sizeof vis);
if(dfs(u)) ++res;
}
return res;
}
int main (){
int id,u,v;
while(scanf("%d",&m),m){
scanf("%d%d",&n,&k);memset(g,0,sizeof g);
while(k--){
scanf("%d%d%d",&id,&u,&v);
if(u!=0&&v!=0) g[u][v] = 1;
}
printf("%d\n",hungary());
}
return 0;
}
hdu 1150 Machine Schedule
最新推荐文章于 2024-04-22 14:40:43 发布