zoukankan      html  css  js  c++  java
  • poj1274 The Perfect Stall

    题意:

    二分图最大匹配。

    思路:

    匈牙利算法。

    实现:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <vector>
     4 #include <cstring>
     5 using namespace std;
     6 
     7 const int MAXN = 500;
     8 vector<int> G[MAXN + 5];
     9 int n, m, k;
    10 bool used[MAXN + 5];
    11 int match[MAXN + 5];
    12 
    13 bool dfs(int v)
    14 {
    15     used[v] = true;
    16     for (int i = 0; i < G[v].size(); i++)
    17     {
    18         int u = G[v][i];
    19         int w = match[u];
    20         if (w == -1 || !used[w] && dfs(w))
    21         {
    22             match[v] = u;
    23             match[u] = v;
    24             return true;
    25         }
    26     }
    27     return false;
    28 }
    29 
    30 int max_match()
    31 {
    32     int res = 0;
    33     for (int i = 1; i <= n + m; i++)
    34     {
    35         if (match[i] == -1)
    36         {
    37             memset(used, 0, sizeof(used));
    38             if (dfs(i))
    39                 res++;
    40         }
    41     }
    42     return res;
    43 }
    44 
    45 int main()
    46 {
    47     while (cin >> n >> m)
    48     {
    49         for (int i = 1; i <= n + m; i++)
    50         {
    51             G[i].clear();
    52         }
    53         memset(match, -1, sizeof(match));
    54         for (int i = 1; i <= n; i++)
    55         {
    56             int tmp;
    57             scanf("%d", &k);
    58             while (k--)
    59             {
    60                 scanf("%d", &tmp);
    61                 G[i].push_back(tmp + n);
    62                 G[tmp + n].push_back(i);
    63             }
    64         }
    65         cout << max_match() << endl;
    66     }
    67     return 0;
    68 }

    总结:

    还可以使用最大流算法。

  • 相关阅读:
    关于IIS7发布网站
    二叉树遍历逆向
    山药熬粥补脾
    山萸肉补肝阴
    生黄芪痔疮
    酸石榴
    生石膏粉清实热
    熟地黄被肾阴
    龙眼肉(桂圆肉)
    鸡内金消食导滞
  • 原文地址:https://www.cnblogs.com/wangyiming/p/6368450.html
Copyright © 2011-2022 走看看