
图论——二分图匹配
文章平均质量分 85
XDU_Skyline
Everything is over, everything is just beginning.
展开
-
2015编程之美初赛第一场 C 质数相关
时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 两个数a和 b (a 输入 第一行为一个数T,为数据组数。之后每组数据包含两行。 第一行为N,为集合S的大小。第二行为N个整数,表示集合内的数。 输出 对于每组数据输出一行,形如"Case #X: Y"。X为数据编号,从1开始,Y为最大的子集的大小。 数据范围 1 ≤ T ≤原创 2015-04-26 13:29:25 · 1053 阅读 · 2 评论 -
例题5.23 蚂蚁 LA4043
1.题目描述:点击打开链接 2.解题思路:本题利用KM算法解决。可以构造一个二分图,把每个白点对应成X结点,黑点对应成Y结点,每个黑点和每个白点相连,权值等于欧几里得距离的负值。然后用KM算法求二分图最佳完美匹配即可解决本题。为什么可以这样做呢?假设在求解最佳完美匹配时候,线段a1-b1和线段a2-b2相交了,那么一定有dist(a1,b1)+dist(a2,b2)>dist(a1,b2)+di原创 2015-10-06 00:07:46 · 484 阅读 · 0 评论 -
例题5.24 少林决胜 UVa11383
1.题目描述:点击打开链接 2.解题思路:本题是KM算法的副产物,在KM算法中,有一个不等式就是L(x)+L(y)>=w(x,y)。算法结束的时候,所有的顶标之和就是最小的。 3.代码: #include #include #include #include #include #include #include #include #include #include #include #inc原创 2015-10-06 23:19:07 · 550 阅读 · 0 评论 -
例题5.27 我是SAM UVa11419
1.题目描述:点击打开链接 2.解题思路:本题就是经典的二分图最小覆盖问题。即选择尽量少的点,使得每条边至少有一个端点被选中。可以证明,最小覆盖数=最大匹配数。建模的方法为:将每一行看做一个X结点,每一列看做一个Y结点,每个目标对应了一条边,那么如果可以成功求出最小覆盖,也就是所有的边都被选中了,即所有的目标都被覆盖了。 那么现在的问题是:如何求一个最小覆盖呢?可以从匈牙利树出发。从X结点中的原创 2015-10-07 00:18:42 · 406 阅读 · 0 评论