• hdu-1179 Ollivanders: Makers of Fine Wands since 382 BC.---二分图匹配模板


    题目链接:

    http://acm.hdu.edu.cn/showproblem.php?pid=1179

    题目大意:

    有n个人要去买魔杖,有m根魔杖(和哈利波特去买魔杖的时候一样,是由魔杖选人)。接下来是m行,每行第一个数k是第i根魔杖可以选的人数,接着k个数表示这根魔杖选的人的编号。最后问老板最多能卖出多少根魔杖。这个赤裸裸的模版题,套下就OK了。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const int maxn = 1000 + 10;
     5 const int INF = 1e9;
     6 bool Map[maxn][maxn];
     7 int cx[maxn], cy[maxn];
     8 int cntx, cnty;
     9 bool vis[maxn];
    10 bool dfs(int u)
    11 {
    12     for(int v = 1; v <= cnty; v++)
    13     {
    14         if(Map[u][v] && !vis[v])
    15         {
    16             vis[v] = 1;
    17             if(cy[v] == -1 || dfs(cy[v]))
    18             {
    19                 cx[u] = v;
    20                 cy[v] = u;
    21                 return 1;
    22             }
    23         }
    24     }
    25     return 0;
    26 }
    27 int maxmatch()
    28 {
    29     int ans = 0;
    30     memset(cx, -1, sizeof(cx));
    31     memset(cy, -1, sizeof(cy));
    32     for(int i = 1; i <= cntx; i++)
    33     {
    34         if(cx[i] == -1)
    35         {
    36             memset(vis, 0, sizeof(vis));
    37             ans += dfs(i);
    38         }
    39     }
    40     return ans;
    41 }
    42 int main()
    43 {
    44     int n, i, u, v;
    45     while(cin >> cnty && cnty)
    46     {
    47         cin >> cntx;
    48         memset(Map, 0, sizeof(Map));
    49         for(int u = 1; u <= cntx; u++)
    50         {
    51             cin >> i;
    52             while(i--)
    53             {
    54                 cin >> v;
    55                 Map[u][v] = 1;
    56             }
    57         }
    58         cout<<maxmatch()<<endl;
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    KCF目标跟踪方法分析与总结
    C# 事件
    委托学习(3)
    委托学习(2)
    委托学习(1)
    本地无sqlserver服务下操作数据库 之GSQL
    unity Android 打包后读取 xml 文件
    Unity 3D 调用摄像头捕获照片 录像
    Unity 进度条3D制作(3D版)
    Unity 3D 进度条制作
  • 原文地址:https://www.cnblogs.com/fzl194/p/8910064.html
Copyright © 2020-2023  润新知