我这代码在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;
}