• 計蒜客/填志愿(匈牙利算法)


    題目鏈接:https://nanti.jisuanke.com/t/50

    題意:中文題誒~

    思路:二分圖最大匹配 (匈牙利模板)

    代碼:

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <string.h>
     4 using namespace std;
     5 
     6 const int MAXN=2e2+10;
     7 int link[MAXN]; //link[x]存儲當前與x節點相連的節點
     8 int mp[MAXN][MAXN];//臨接矩陣記錄圖
     9 bool vis[MAXN];//vis[i]標記i節點是否使用過
    10 int n, m;
    11 
    12 bool dfs(int x){
    13     for(int i=1; i<=m; i++){
    14         if(!vis[i]&&mp[x][i]){
    15             vis[i]=true;
    16             if(link[i]==-1||dfs(link[i])){
    17                 link[i]=x;
    18                 return true;
    19             }
    20         }
    21     }
    22     return false;
    23 }
    24 
    25 int maxmatch(void){
    26     int ans=0;
    27     memset(link, -1, sizeof(link));
    28     for(int i=1; i<=n; i++){
    29         memset(vis, false, sizeof(vis));
    30         if(dfs(i)) ans++;
    31     }
    32     return ans;
    33 }
    34 
    35 int main(void){
    36     scanf("%d%d", &n, &m);
    37     for(int i=1; i<=n; i++){
    38         int k, x;
    39         scanf("%d", &k);
    40         for(int j=0; j<k; j++){
    41             scanf("%d", &x);
    42             mp[i][x]=1;
    43         }
    44     }
    45     printf("%d
    ", maxmatch());
    46     return 0;
    47 }
    View Code
  • 相关阅读:
    Linux curl命令添加参数
    postman无限循环执行接口用例
    xshell用root用户登录ubuntu
    centos5 yum源配置
    移动端布局方案
    vue + store2实现未提交信息自动保存
    sublime text里的terminal
    20180204
    2018.1.3 interview
    http协议
  • 原文地址:https://www.cnblogs.com/geloutingyu/p/6804074.html
Copyright © 2020-2023  润新知