求助求条!7,8,9,10WA!
查看原帖
求助求条!7,8,9,10WA!
351042
kardsOI楼主2024/7/24 09:04
#include<bits/stdc++.h>
using namespace std;
int n,m,e;
int cp[650][650],tail[650],an,bn,head[650],result,pc[650],ax[650][650];
bool find(int p)
{
	head[p]++;
	for(int i=head[p];i<=tail[p];i++)
	{
		if(pc[cp[p][i]]) find(pc[cp[p][i]]);
		if(!pc[cp[p][i]])
		{
			pc[cp[p][head[p]-1]]=0;
			pc[cp[p][i]]=p;
			head[p]=i;
			return 1;
		}
	}
	return 0;
}
int main()
{
	freopen("1.txt","r",stdin);
	scanf("%d%d%d",&n,&m,&e);
	if(n<=m)
	{
		for(int i=1;i<=e;i++)
		{
			scanf("%d%d",&an,&bn);
			if(!ax[an][bn]) cp[an][++tail[an]]=bn;
			ax[an][bn]=1;
		}
	}
	else
	{
		for(int i=1;i<=e;i++)
		{
			scanf("%d%d",&an,&bn);
			if(!ax[an][bn]) cp[bn][++tail[bn]]=an;
			ax[an][bn]=1;
		}
		swap(n,m);
	}
	for(int i=1;i<=n;i++)
	{
		if(find(i)) result++;
	}
	printf("%d",result);
	return 0;
}
2024/7/24 09:04
加载中...