zoukankan      html  css  js  c++  java
  • 洛谷P3386 【模板】二分图匹配

    匈牙利算法模板

     1 /*by SilverN*/
     2 #include<algorithm>
     3 #include<iostream>
     4 #include<cstring>
     5 #include<cstdio>
     6 #include<cmath>
     7 #include<vector>
     8 using namespace std;
     9 const int mxn=1010;
    10 int read(){
    11     int x=0,f=1;char ch=getchar();
    12     while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    13     while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
    14     return x*f;
    15 }
    16 int mp[mxn][mxn];
    17 int n,m,et;
    18 int link[mxn];
    19 bool vis[mxn];
    20 bool DFS(int u){
    21     for(int i=1;i<=n;i++){
    22         if(!vis[i] && mp[u][i]){
    23             vis[i]=1;
    24             if(link[i]==-1 || DFS(link[i])){
    25                 link[i]=u;
    26                 return 1;
    27             }
    28         }
    29     }
    30     return 0;
    31 }
    32 int solve(){
    33     int res=0;
    34     for(int i=1;i<=n;i++){
    35         memset(vis,0,sizeof vis);
    36         if(DFS(i))res++;
    37     }
    38     return res;
    39 }
    40 int main(){
    41     n=read();m=read();et=read();
    42     int i,j;
    43     int u,v;
    44     for(i=1;i<=et;i++){
    45         u=read();v=read();
    46         if(u>m || v>m)continue;
    47         mp[u][v]=mp[v][u]=1;
    48     }
    49     memset(link,-1,sizeof link);
    50     int ans=solve();
    51     printf("%d
    ",ans);
    52     return 0;
    53 }
  • 相关阅读:
    UDP 远程主机强迫关闭了一个现有连接
    CSS float 理解
    C# 启用事务提交多条带参数的SQL语句
    EF学习之DBFirst
    说一说JavaScript 中的原型ProtoType
    Unity
    Unity
    Unity
    Unity
    Godot
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/6031340.html
Copyright © 2011-2022 走看看