匈牙利算法
匈牙利算法
JA_yichao
这个作者很懒,什么都没留下…
展开
-
Luogu P3386 【模板】二分图最大匹配【匈牙利算法】【网络流】(未完成)
题目思路1这道题是匈牙利算法模板题。额,之前做过,但是忘了,于是就拿来复习一下。1代码(匈牙利算法)#include<iostream>#include<cstring>#include<cstdio>using namespace std;int v[1000010],hd[1000010],tot,link[1000010];int n,m,s,x,y,ans;struct node{ int y,next;}a[2000010];vo原创 2021-07-28 15:57:35 · 119 阅读 · 0 评论 -
SSL集训 2021.07.12 提高B组 T4 Vani和Cl2捉迷藏【匈牙利算法】【传递闭包】
SSL集训原创 2021-07-13 15:37:19 · 110 阅读 · 0 评论 -
SSL1340 最小路径覆盖【二分图匹配】【匈牙利算法】
由于最小路径覆盖数 === 原图G的顶点数 −-− 二分图的最大匹配数所以,套模板即可。#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;int ls[10010],v[10010],link[10010];int T,n,m,x,y,tot,ans;struct .原创 2020-08-22 09:00:21 · 156 阅读 · 0 评论 -
SSL1333 地鼠的困境【二分图匹配】【匈牙利算法】
这道题其实也差不多是一个模板题注意有多组数据即可。代码#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;int T,n,m,v,s,tot,ans,link[1010],vis[1010],ls[1010];double dzx[1010],dzy[1010],sdx.原创 2020-08-22 08:34:54 · 772 阅读 · 0 评论 -
SSL1344 Knights【二分图匹配】【匈牙利算法】
对于本题来说,相互攻击的位置肯定不能同时存在两个马。如果我们把两个相互攻击的位置连一条边,从而构成一个图。那么相邻的两个点不能同时选,也就是求最大独立集。所以,我们可以把此题转化成最大匹配问题。这道题我们需要黑白点覆盖,因为这是国际象棋,黑点只能跳白点,白点只能跳黑点。我们考虑黑点连白点建立一个二分图,如何建?如果当前点是黑点,就让当前点分八个点拓展到其它点并建边 。用不了坐标建边,就用编号建边。推一推可得点的编号为:(i−1)∗n+j(i-1)*n+j(i−1)∗n+j 。然后正常匈牙利.原创 2020-08-21 21:02:22 · 156 阅读 · 0 评论 -
SSL1341 Asteroids【二分图匹配】【匈牙利算法】
这道题运用的算法和SSL1338 人员分配【二分图匹配】一样,关键是你怎么样建图!我们可以思考一个问题:怎样让一颗子弹直接把一行或一列打掉呢?这时我们考虑匹配的性质,当一个点与另一个点匹配,那么这个点就不能再和其他点匹配(暂时)。会发现,我们可以直接建图,行放在上,列放在下,当枚举到 iii 点时,产生匹配,其他所有点都不能与之匹配,相当于把其他边全部断掉(暂时),这就符合了一颗子弹直接把一行或一列打掉的情况。所以最大匹配就是答案。代码#include<algorithm>#i.原创 2020-08-21 16:54:10 · 142 阅读 · 0 评论 -
SSL1338 人员分配【二分图匹配】【匈牙利算法】
这是一道用匈牙利算法求最大匹配的模板题怎样做可以看这篇博客,超赞!这里我只给出解法和详细注释。邻接矩阵#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;int a[2010][2010],v[2010],link[1000010];int m,n,s,x,y,ans.原创 2020-08-21 16:21:08 · 143 阅读 · 0 评论