求助!!!
查看原帖
求助!!!
549499
Disjoint_cat楼主2022/5/18 13:41

我这代码在P3386里是AC的,但是在这道题里不知为啥WA两个点,求调

#include<bits/stdc++.h>
using namespace std;
const int N=505;
int n,m,e,u,v,ans,cp[N];
bool bll[N],blr[N],can[N][N];
bool dfs(int node)
{
	bll[node]=1;
	for(int i=1;i<=m;i++)
		if(!blr[i]&&can[node][i])
		{
			blr[i]=1;
			if(!cp[i]||(!bll[cp[i]]&&dfs(cp[i])))
			{
				cp[i]=node,bll[node]=blr[i]=0;
				return 1;
			}
		}
		
	bll[node]=0;
	return 0;
}
int main()
{
	cin>>n>>m>>e;
	for(int i=1;i<=e;i++)
	{
		scanf("%d%d",&u,&v);
		can[u][v]=1;
	}
	for(int i=1;i<=n;i++)ans+=dfs(i);
	cout<<ans;
	return 0;
}
2022/5/18 13:41
加载中...