二分图

    科技2024-05-18  193

    匈牙利

    #include<bits/stdc++.h> using namespace std; int b,n,t; const int M=209; int v[M],g[M][M],m[M]; int dfs(int x) { for(int i=1;i<=b;i++) { if(g[x][i] || v[i])continue; v[i]=1; if(dfs(m[i]) || !m[i]) { m[i]=x; return 1; } } return 0; } int main() { cin>>n>>b>>t; for(int i=1;i<=t;i++) { int x,y; cin>>x>>y; g[x][y]=1; } int ans=0; for(int i=1;i<=n;i++) { memset (v,0,sizeof(v)); if(dfs(i))ans++; } cout<<ans; } 作者:ruanmowen 链接:https://www.acwing.com/activity/content/code/content/275964/ 来源:AcWing 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    Processed: 0.016, SQL: 8