超易懂讲解博客: https://blog.csdn.net/dark_scope/article/details/8880547
模板:题目链接
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<queue>
#include<cstdio>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long int LL;
int k,n,m;
int line[505][505];
int used[505],girl[505];
bool Find(int x)
{
for(int i=1; i<=m; i++)
{
if(line[x][i]&&used[i]==0)
used[i]=1;
if(girl[i]==0||Find(girl[i]))
{
girl[i]=x;
return 1;
}
}
}
return 0;
}
int main()
{
while(cin>>k&&k)
{
cin>>n>>m;
memset(line,0,sizeof(line));
memset(girl,0,sizeof(girl));
for(int i=0; i<k; i++)
{
int x,y;
cin>>x>>y;
line[x][y]=1;
}
int ans=0;
for(int i=1; i<=n; i++)
{
memset(used,0,sizeof(used));
if(Find(i)==1)
ans++;
}
cout<<ans<<endl;
}
return 0;
}