杭电2064----过山车『匈牙利算法』

Posted Jeson

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了杭电2064----过山车『匈牙利算法』相关的知识,希望对你有一定的参考价值。

 1 //匈牙利算法模版题
 2 #include <cstdio>
 3 #include <vector>
 4 #include <cstring>
 5 using namespace std;
 6 const int maxn = 505;
 7 vector<int> v[maxn];
 8 int vis[maxn],match[maxn];
 9 bool dfs(int t)
10 {
11     for(int i = 0; i < v[t].size(); ++i)
12     {
13         int x = v[t][i];
14         if(!vis[x])
15         {
16             vis[x] = 1;
17             if(match[x] == -1 || dfs(match[x]))
18             {match[x] = t; return true; }
19         }
20     }
21     return false;
22 }
23 int hungary(int n)
24 {
25     int ans = 0;
26     for(int i = 1; i <= n; ++i)
27     {
28         memset(vis,0,sizeof vis);
29         if(dfs(i)) ++ans;
30     }
31     return ans;
32 }
33 int main()
34 {
35     int k,n,m,x,y;
36     while(~scanf("%d",&k) && k)
37     {
38         scanf("%d%d",&n,&m);
39         for(int i = 1; i <= n; ++i)
40             v[i].clear();
41         memset(match,-1,sizeof match);
42         while(k--)
43         {
44             scanf("%d%d",&x,&y);
45             v[x].push_back(y);
46         }
47         printf("%d\n",hungary(n));
48     }
49     return 0;
50 }

 

以上是关于杭电2064----过山车『匈牙利算法』的主要内容,如果未能解决你的问题,请参考以下文章

匈牙利算法-二分图的最大匹配

hdu 2063 过山车匈牙利算法(经典)

luogu3386 模板二分图匹配 匈牙利算法 hdu2063 过山车 dinic

hdu 2063 过山车 二分图的最大匹配 匈牙利算法

hdu2063 匈牙利算法 二分最大匹配模版题

hdu 2063 (二分匹配 匈牙利算法)