匈牙利算法
Coco_T_
东南大学本科毕业生,浙江大学在读研究生
展开
-
poj3041 Asteroids(匈牙利)
题目链接分析: 这和UVa的一道题目是一样的 但是这里我们用匈牙利完成(纯粹是为了练算法)我们在使用网络流求解的时候,转化成了最小割的问题 具体的建图: 每一行为x部,每一列为y部, 每个小行星就转化成两个部之间的连线 跑最大流即可然而在使用匈牙利算法的时候,我们的思维也要经过如此转化 而匈牙利说白了就是增广的一个简单实现 (代码短,复杂度比较稳定)也就是说,想要使原创 2018-01-06 19:16:58 · 227 阅读 · 0 评论 -
poj3020 Antenna Placement(匈牙利)
题目链接分析: 这道题的重点就在于建图一开始我YY了至少三种建模方式 (比如说网格中两个点打包一下变成二分图的一个结点,直接h*w个结点,每一行每一列为一个结点)实际上我们要换一种思维方式 设网格中的“*”个数为tt 我们已经知道了最坏情况:tt 如果我们在一个网格中设置了一个设备,就有可能节省一台设备(设备最多可以覆盖两个点) 我们可以把问题转化成:最大节约数量建图:原创 2018-01-06 21:59:15 · 526 阅读 · 0 评论 -
图上的文章再续(二分图)
很久之前,介绍过KM算法 KM算法专门解决二分图最佳完美匹配问题 前提是:完全二分图(要明白,这个前提就要求两个部分的点都可以互相到达,这样才能用KM算法中的无脑循环) 得到的:一定是最佳匹配,且每个点都有匹配对象 复杂度:O(n^3) 另外的:如果只是想求最大权值匹配而不要求是完全匹配的话,可以把不相连的边的权值设置为0const int N=101;const int IN原创 2018-01-06 17:47:39 · 335 阅读 · 0 评论