UVA 12168 - Cat vs. Dog
题目链接
题意:给定一些猫爱好者,和一些狗爱好者,每个人都有一个喜欢的猫(狗),和一个讨厌的狗(猫),要问现在给一种方案,使得尽量多的人被满足
思路:二分图匹配最大独立集,猫爱好者和狗爱好者矛盾的建边,做一次最大独立集即可
代码:
#include
#include
#include
using namespace...
分类:
其他好文 时间:
2014-09-04 19:02:19
阅读次数:
200
UVA 1201 - Taxi Cab Scheme
题目链接
题意:给定一些乘客,每个乘客需要一个出租车,有一个起始时刻,起点,终点,行走路程为曼哈顿距离,每辆出租车必须在乘客一分钟之前到达,问最少需要几辆出租车
思路:如果一辆车载完一个乘客a,能去载乘客b,就连一条有向边,这样做完整个图形成一个DAG,然后要求的最少数量就是最小路径覆盖,利用二分图最大匹配去做,把每个点拆成两...
分类:
其他好文 时间:
2014-09-04 00:12:37
阅读次数:
210
UVA 11419 - SAM I AM
题目链接
题意:给定一个棋盘,上面有一些目标,现在要放炮,一个炮能打一行或一列,问最少放几个炮及放炮位置
思路:首先是二分图匹配,每个目标行列建边,做二分图匹配就是最少的放炮位置,至于输出方案,利用最小点覆盖的Konig原理去做,详细证明
代码:
#include
#include
#include
using name...
分类:
其他好文 时间:
2014-09-03 22:49:57
阅读次数:
260
点击标题查看代码210. Beloved Sons题意:国王要给王子们安排婚事,每个王子都有一个权重Ai,目标是使所有与心爱女孩结婚的王子们的权重的2范数最大。二分图匹配即可,因为匈牙利算法的贪心性质,会使排在前面的王子先找到配偶,这样,如果后面有王子无法匹配,一定是与前面的王子发生冲突,但是如果修...
分类:
其他好文 时间:
2014-09-03 22:29:07
阅读次数:
282
poj1274:http://poj.org/problem?id=1274题意:有n个奶牛和m个谷仓,现在每个奶牛有自己喜欢去的谷仓,并且它们只会去自己喜欢的谷仓吃东西,问最多有多少奶牛能够吃到东西题解:裸的二分图匹配,直接上匈牙利。 1 #include 2 #include 3 #includ...
分类:
其他好文 时间:
2014-08-27 20:20:48
阅读次数:
188
导弹拦截是一个经典问题:求一个序列的最长不上升子序列,以及求能最少划分成几组不上升子序列。第一问是经典动态规划,第二问直接的方法是最小路径覆盖, 但是二分图匹配的复杂度较高,我们可以将其转化成求最长上升子序列,其最大值即等于不上升子序列的最小划分数。这就涉及到组合数学中偏序集的 Dilworth定理...
分类:
其他好文 时间:
2014-08-26 19:31:46
阅读次数:
273
一、二分图最大匹配 定义:匹配是图中一些边的集合,且集合中任意两条边都没有公共点,所有的匹配中,边数最多的就是最大匹配。 算法:用匈牙利算法可以在O(V*E)的复杂度内求出二分图的最大匹配,具体可以看byvoid神犇的blog,讲的很详细,不过想真正完全证明这个算法,得去看组合数学。二、二分...
分类:
其他好文 时间:
2014-08-26 19:08:56
阅读次数:
208
思路:这题刚开始看就知道是最小费用最大流了,因为求出最优嘛,而且要m,H要一一对应,所以不是二分图匹配就是最小费用最大流。
不过,刚开始还在想每个m与H之间的最小花费如何求,难道要用dfs搜索吗?这样想之后看了下题目给的时间是1000ms,然后就把dfs搜索m与H之间的最短距离排除了。然后想了想,其实尼玛太简单了,因为题目说了只能垂直与竖直的走,所以最短距离不就是两个横坐标相减与两个纵坐标相减之...
分类:
其他好文 时间:
2014-08-25 22:57:35
阅读次数:
291
一开始我想到了这是求最小割,但是我认为这题二分图可做,将1的放在左边,0的放在右边,然后朋友连边,如果有冲突就相当于有1条x-y的边,求最小割也就是最大匹配即可。。可是不知道为什么就错了。#include #include #include #include #include #include us...
分类:
其他好文 时间:
2014-08-25 11:18:34
阅读次数:
173
题意:N个学生,P个课程,问能不能找到课程的P个匹配。思路:【早上睡醒了再写】代码: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 const int maxn = 555; 7 int n, p; ...
分类:
其他好文 时间:
2014-08-23 03:32:59
阅读次数:
276