zoukankan      html  css  js  c++  java
  • hdu1068 Girls and Boys 匈牙利算法(邻接表)

     1 #include <cstdio>
     2 #include <algorithm>
     3 #include <cstring>
     4 #include <vector>
     5 using namespace std;
     6 
     7 const int maxn = 10008;
     8 vector<int>map[maxn];
     9 bool mark[maxn];
    10 int link[maxn];
    11 int n;
    12 
    13 void init(){
    14     for (int i = 0; i <= n; i++){
    15         map[i].clear();
    16     }
    17     memset(mark, false, sizeof(mark));
    18     memset(link, -1, sizeof(link));
    19 }
    20 
    21 bool dfs(int x){
    22     int k = map[x].size();
    23     for (int j = 0; j < k; j++){
    24         int v = map[x][j];
    25         if (!mark[v]){
    26             mark[v] = true;
    27             if (link[v] == -1 || dfs(link[v])){
    28                 link[v] = x;
    29                 return true;
    30             }
    31         }
    32     }
    33     return false;
    34 }
    35 
    36 int main(){
    37     while (scanf("%d", &n) != EOF){
    38         init();
    39         for (int i = 0; i < n; i++){
    40             int x, y;
    41             scanf("%d: (%d)", &x, &y);
    42             for (int j = 0; j < y; j++){
    43                 scanf("%d", &x);
    44                 map[i].push_back(x);
    45             }
    46         }
    47 
    48         int ans = 0;
    49         for (int i = 0; i < n; i++){
    50             memset(mark, false, sizeof(mark));
    51             if (dfs(i))
    52                 ans++;
    53         }
    54         printf("%d
    ", n - ans / 2);
    55     }
    56     //system("pause");
    57     return 0;
    58 }
  • 相关阅读:
    sql注入之payload
    cve2019-0708漏洞复现
    xss学习
    kernel panic not syncing
    nodeJS爬虫
    JS刷题自制参考知识
    HTML Cookie
    点击按钮触发div颜色改变的几种写法
    Bootstrap4布局(简要)
    jQuery实现论坛发帖Demo
  • 原文地址:https://www.cnblogs.com/ouyang_wsgwz/p/7523187.html
Copyright © 2011-2022 走看看