匈牙利算法
Joey丶sunk
古今成大事者 不惟有超世之才 亦必有坚忍不拔之志
展开
-
UVA - 12083 Guardian of Decency 匈牙利算法(二分图最大匹配)
选人问题,符合某种规则的两个人不能在一起 最大匹配两个不能在一起的人,最后 所有人数减去 匹配数除以2 就是最大的带领人数#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <set>#include <stack>#include <queu原创 2017-08-21 13:40:53 · 389 阅读 · 0 评论 -
匈牙利算法 最大二分图匹配
#include #include #include #include #include #include #include #include #include #include #include #include // cout << " === " << endl;using namespace std;typedef long long ll;const原创 2017-08-22 08:21:45 · 229 阅读 · 0 评论 -
Matrix Gym - 100741F 匈牙利算法(最大二分图匹配)
用对角线匹配可选值#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn (300 + 7)#define INF 0x3f3f3f3fi原创 2017-08-22 22:04:06 · 265 阅读 · 0 评论 -
HDU - 1054 Strategic Game 最小结点覆盖(二分图最大匹配-匈牙利算法)
最小结点覆盖,二分图最大匹配(匈牙利算法)首先读入 双向建边,得到无向的二分图然后匈牙利匹配,得到的答案除以2------------------------------------------------------------------------------------------------------------------妈耶,,他说是树形图,我就按最小支配集做,但是原创 2017-09-20 22:21:21 · 373 阅读 · 0 评论 -
POJ - 1463 Strategic game 最小点覆盖(二分图匹配-匈牙利算法)
最小点覆盖问题 也是匹配问题这里用到了 匈牙利算法,还用到了结构体数组存邻接表的做法 **之前错误理解为最小边覆盖,6个点的链就卡到了边覆盖想法 #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include &l...原创 2017-09-21 08:40:14 · 273 阅读 · 5 评论 -
HDU - 1150 Machine Schedule 最小点覆盖(最大二分图匹配-匈牙利算法)邻接表写法
日!最近 CF 做的多了,再做多组输入的题的时候 忘记数组清空,,然后wa了 好久。。。我就说吗。。。这么裸的匈牙利怎么会出错呢?——————————————————————分割这个题是最小点覆盖问题,画出图来以后可以知道是找最少的点覆盖所有边,每个点覆盖它相连的边最小点覆盖问题 等价于 最大二分图匹配相关证明这里不做详解 ,可以参考这个博客:http://ww原创 2017-10-07 20:38:31 · 315 阅读 · 0 评论 -
CTU 2017 J. Punching Power 建图+最大二分图匹配
题意:给定n个点,选一些点放置拳击机器,两个机器之间距离大于1.3,也就是两个机器不能同行挨着,同列挨着;问能防止的机器数最大多少 思路:题目可以转化成最大独立集,因为在坐标系里,不存在基环,那么就可以用匈牙利算法解决二分图最大匹配解决关于建图,把相邻的两个点(冲突的两个点)建边,然后跑二分图最大匹配数为ans,最后答案就是n-ans;注意,这里建的双向匹配边,所以an...原创 2018-08-21 21:47:18 · 238 阅读 · 0 评论 -
ZOJ - 3988 Prime Set 匈牙利算法思想(最大匹配数)
题意:给定n个数,让你选k对数,每对数加和是素数,使得这些数对的下标组成的集合尽量大思路:首先要找下标不重复的一些数对:例如 (1,2) (3,5) (4,7) 这三个就是不重复下标的素数对可以运用匈牙利算法的思想,把不重复下标的最大匹配数找出来(如果需要,也可以把这些数对找出来,即f[]数组表示某个数的前驱结点);如果这些数对还不够k对的话,我们再找其他可以组成素数对的,但是还没有选的数...原创 2019-03-28 22:56:50 · 289 阅读 · 0 评论