UVA 1411 - Ants
题目链接
题意:给定一些黑点白点,要求一个黑点连接一个白点,并且所有线段都不相交
思路:二分图完美匹配,权值存负的欧几里得距离,这样的话,相交肯定比不相交权值小,所以做一次完美匹配就可以了
代码:
#include
#include
#include
#include
using namespace std;
const in...
分类:
其他好文 时间:
2014-09-04 13:27:19
阅读次数:
228
UVA 11383 - Golden Tiger Claw
题目链接
题意:给定每列和每行的和,给定一个矩阵,要求每个格子(x, y)的值小于row(i) + col(j),求一种方案,并且所有行列之和的和最小
思路:A二分图完美匹配的扩展,行列建二分图,权值为矩阵相应位置的值,做一次KM算法后,所有顶标之和就是最小的
代码:
#include
#include
...
分类:
其他好文 时间:
2014-09-04 13:22:59
阅读次数:
196
UVA 12083 - Guardian of Decency
题目链接
题意:给定一些男女,满足身高差不大于40,喜欢同一种音乐,不喜欢同一种体育项目,并且性别不同,就可能发生关系,现在老师要带一些男女出去玩,要求不能有一对发生关系,问最多能带多少人
思路:分男女,把会发生关系的连边,然后做最大匹配,最后n-最大匹配就是最多能带的人
代码:
#include
#i...
分类:
其他好文 时间:
2014-09-04 00:16:47
阅读次数:
231
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
UVA 1086 - The Ministers' Major Mess
题目链接
题意:有n个方案,每个人投票,一个人最多投4张票,现在要有一个方案,使得满足所有人投票方案中有超过一半被满足,输出方案的对错,如果一个方案对错都可以,就输出?
思路:明显是二分图,一开始想错了,想从正着去把条件式化简,根本不可行
正确的做法是,反过来想,因为最多4张票并且超过1半,如果反过来...
分类:
其他好文 时间:
2014-09-01 19:37:33
阅读次数:
231
POJ 2942 Knights of the Round Table
链接:http://poj.org/problem?id=2942
题意:亚瑟王要在圆桌上召开骑士会议,为了不引发骑士之间的冲突,并且能够让会议的议题有令人满意的结果,每次开会前都必须对出席会议的骑士有如下要求:
1、 相互憎恨的两个骑士不能坐在直接相邻的2个位置;
2、 出席会议的骑士数必须是奇数,这是为了...
分类:
其他好文 时间:
2014-09-01 17:46:23
阅读次数:
268
UVA 11080 - Place the Guards
题目链接
题意:一些城市,之间有道路相连,现在要安放警卫,警卫能看守到当前点周围的边,一条边只能有一个警卫看守,问是否有方案,如果有最少放几个警卫
思路:二分图判定,判定过程记录下白点和黑点个数,小的就是要安放的个数,注意如果是0,那么应该是加1
代码:
#include
#include
#include...
分类:
其他好文 时间:
2014-08-31 17:20:21
阅读次数:
155
判断一个图是不是二分图
用染色法,二分图是这样一个图: 有两顶点集且图中每条边的的两个顶点分别位于两个顶点集中,每个顶点集中没有边相连接!
判断二分图的常见方法:开始对任意一未染色的顶点染色,之后判断其相邻的顶点中,若未染色则将其染上和相邻顶点不同的颜色, 若已经染色且颜色和相邻顶点的颜色相同则说明不是二分图,若颜色不同则继续判断,
每次用bfs/dfs遍历都可。
二分图最大匹...
分类:
其他好文 时间:
2014-08-30 16:30:39
阅读次数:
167