参考:https://www.luogu.com.cn/blog/fusu2333/post-2018-wu-yi-qing-bei-pei-xun-er-fen-tu-xiong-ya-li-suan-fa-post

模板:https://www.luogu.com.cn/problem/P3386

true是1,false是0

最大独立点集=点数-最大匹配

#include<bits/stdc++.h>
using namespace std;
const int maxn=500+10;
int n,m,e;
vector<int> a[maxn];
int tu[maxn][maxn];
int kai[maxn],jie[maxn];
bool dfs(int x,int tar)
{
	if(kai[x]==tar)	return 0;
	kai[x]=tar;
	for(int j=0;j<a[x].size();j++)
	{
		if(jie[a[x][j]]==0||dfs(jie[a[x][j]],tar))
		{
			jie[a[x][j]]=x;
			return 1;
		}
	}
	return 0;
}
int main()
{
	scanf("%d%d%d",&n,&m,&e);
	while(e--)
	{
		int u,v;
		scanf("%d%d",&u,&v);
		tu[u][v]=1;
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(tu[i][j]==1)	a[i].push_back(j);
		}
	}
	int ans=0;
	for(int i=1;i<=n;i++)
	{
		if(dfs(i,i))
		{
			ans++;
		}
	}
	printf("%d\n",ans);
    return 0;
}