20pts 求助
查看原帖
20pts 求助
220437
Birdparrot楼主2024/12/8 06:36

只通过了 Subtask 2,3

#include <bits/stdc++.h>
using namespace std;

int match[505],vis[505];
vector<int> e[505];

bool dfs(int u)
{
    for(auto v : e[u])
    {
    	if(vis[v]==1) continue;
    	vis[v]=1;
        if(match[v]==0 || dfs(match[v]))
        {
            match[v]==u;
            return true;
        }
    }

    return false;

}

int main()
{
    int n,m,es;
    cin>>n>>m>>es;

    for(int i=1;i<=es;i++)
    {
        int x,y;
        cin>>x>>y;
        e[x].push_back(y);
    }

    int ans=0;
    for(int i=1;i<=n;i++)
    {
    	memset(vis,0,sizeof(vis));
        if(dfs(i)) ans++;
    }

    cout<<ans<<endl;

    return 0;
    
}
2024/12/8 06:36
加载中...