• [洛谷P3386][题解][模板]二分图匹配


    题目戳我

    利用匈牙利算法实现二分图最大匹配

    主要是递归和贪心的思想

    Code:

     1 #include<bits/stdc++.h>
     2 #define LL long long
     3 #define rg register
     4 #define us unsigned
     5 #define eps 1e-6
     6 #define INF 0x3f3f3f3f
     7 #define ls k<<1
     8 #define rs k<<1|1
     9 #define tmid (tr[k].l+tr[k].r)>>1
    10 #define nmid (l+r)>>1
    11 #define Thispoint tr[k].l==tr[k].r
    12 #define pushup tr[k].wei=tr[ls].wei+tr[rs].wei
    13 using namespace std;
    14 inline void Read(int &x){
    15     int f=1;
    16     char c=getchar();
    17     x=0;
    18     while(c<'0'||c>'9'){
    19         if(c=='-')f=-1;
    20         c=getchar();
    21     }
    22     while(c>='0'&&c<='9'){
    23         x=(x<<3)+(x<<1)+c-'0';
    24         c=getchar();
    25     }
    26     x*=f;
    27 }
    28 inline void Print(int x){
    29     if(x<0){
    30         x=~(x-1);
    31         putchar('-');
    32     }
    33     if(x>9)Print(x/10);
    34     putchar(x%10+'0');
    35 }
    36 #define N 1010
    37 int n,m,e,ans,match[N];
    38 bool mp[N][N],vis[N];
    39 bool DFS(int x){
    40     for(int i=1;i<=m;i++){
    41         if(!vis[i]&&mp[x][i]){
    42             vis[i]=1;
    43             if(!match[i]||DFS(match[i])){
    44                 match[i]=x;
    45                 return 1;
    46             }
    47         }
    48     }
    49     return 0;
    50 }
    51 int main(){
    52     Read(n),Read(m),Read(e);
    53     for(int i=1;i<=e;i++){
    54         int u,v;
    55         Read(u),Read(v);
    56         if(v<=m&&u<=n)mp[u][v]=1;
    57     }
    58     for(int i=1;i<=n;i++){
    59         ans+=DFS(i);
    60         memset(vis,0,sizeof(vis));
    61     }
    62     Print(ans);
    63     return 0;
    64 }
    内容来自_ajhfff_的博客(https://www.cnblogs.com/juruoajh/),未经允许,不得转载。
  • 相关阅读:
    集成学习
    集成学习
    集成学习
    集成学习-Majority Voting
    pandas 之 groupby 聚合函数
    LDA-作为线性判别 降维 推导
    LDA-作为线性判别 分类器 推导
    ML-逻辑回归推导
    第一册:lesson eighty one.
    第一册:lesson seventy nine.
  • 原文地址:https://www.cnblogs.com/juruoajh/p/12303393.html
Copyright © 2020-2023  润新知