解题报告
题意:
n个人,m辆车,给出人和车的坐标,还有人的速度,求全部人都坐上车的最小时间。(一辆车只能做一个人)
思路:
原本以为在二分图上求最小的时间就变成了求二分图的最佳匹配,其实可以二分时间,满足时间的人和车连线构图,这样二分的求最小时间。
可能写挫了,我竟然这样二分时间,,,sad
其实只要把所有的可能时间存下在二分时间更快。
#include
#include
#i...
分类:
其他好文 时间:
2014-08-16 21:09:21
阅读次数:
160
题目链接:http://poj.org/problem?id=2536
题意:已知有n只老鼠的坐标,m个洞的坐标,老鼠的移动速度为V,S秒以后有一只老鹰要吃老鼠,问有多少个老鼠被吃。
很明晰,二分匹配,老鼠为X集合,洞为Y集合
#include
#include
#include
#include
#include
#include
#define i...
分类:
其他好文 时间:
2014-08-16 19:48:31
阅读次数:
239
解题报告
题目传送门
题意:
在h×w的矩阵中,o表示空地,*表示城市,无线设备只能装在城市上,要使城市全都覆盖需要多少设备。每个设备只能覆盖相邻的两个设备。
思路:
感觉是直接的最大匹配,求出两两匹配的最大数,加上没有匹配的城市就是要的答案。
网上看了题解,正解是最小路径覆盖。
最小路径覆盖=|G|-最大匹配数
在一个N*N的有向图中,路径覆盖就是在图中找一些路经,使之覆盖了...
分类:
其他好文 时间:
2014-08-16 12:38:50
阅读次数:
142
N头牛,M个畜栏,每头牛只喜欢其中的某几个畜栏,但是一个畜栏只能有一只牛拥有,问最多可以有多少只牛拥有畜栏。
典型的指派型问题,用二分图匹配来做,求最大二分图匹配可以用最大流算法,也可以用匈牙利算法,这里使用匈牙利算法。
#include
#include
#include
#include
#include
#include
#include
#include ...
分类:
其他好文 时间:
2014-08-16 12:34:30
阅读次数:
165
下面给出关于二分图最大匹配的两个定理:1:最大匹配数 + 最大独立集 = n + m2:二分图的最小覆盖数 = 最大匹配数3:最小路径覆盖 = 最大独立集最大独立集是指求一个二分图中最大的一个点集,该点集内的点互不相连。最小顶点覆盖是指 在二分图中,用最少的点,让所有的边至少和一个点有关联。最小路径...
分类:
其他好文 时间:
2014-08-16 12:24:10
阅读次数:
215
剪辑其他网友朋友的博文,谢谢他了!匈牙利算法是解决寻找二分图最大匹配的。(一)预备知识 什么是二分图:二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同 的顶点...
分类:
其他好文 时间:
2014-08-16 12:20:10
阅读次数:
193
题目链接
题意:n个学生,m对关系,每一对互相认识的能住一个房间。问否把这些学生分成两组,要求每组的学生都互不认识。求最多需要多少个房间。
是否能分成两组?也就是说判断是不是二分图,判断二分图的办法,用染色法
把初始点染成黑色,然后与之相连的染成白色,重复,使路径黑白相间,
如果当前点的颜色和与他相连点的颜色相同时,则说明这个图不是二分图
求最多需要多少个房间?也就是...
分类:
其他好文 时间:
2014-08-16 09:45:10
阅读次数:
204
解题报告
题目传送门
题意:
两个人拿着两副牌,其中一人知道另一个人的手牌,问要怎么配对才能使他获得更多的点数。
游戏规则:
两张牌的第一个数大的牌的人加点。
第一个数相同就比较第二个数。
H>S>D>C
思路:
很容易建图,二分图最大匹配over
#include
#include
#include
using namespace std;
int mmap[100]...
分类:
其他好文 时间:
2014-08-15 21:14:29
阅读次数:
362
解题报告
题意:
题意类似与POJ3041
思路:
见POJ3041解题报告
最小点覆盖。
#include
#include
#include
using namespace std;
int mmap[110][110],vis[110],pre[110],n,m;
int dfs(int x) {
for(int i=1; i<=m; i++) {...
分类:
其他好文 时间:
2014-08-15 21:12:49
阅读次数:
253
今天学习了一下二分图,赶紧总结整理一下:
二分图问题,有很多,但归根结底还是求最大匹配数。
Point 1:
二分图中的最小点覆盖数 = 最大匹配数
最小点覆盖:也就是说用最少的点覆盖所有的边
Point 2 :
二分图中的最小路径覆盖 = 顶点数 - 最大匹配数
最小路径覆盖:也叫最小边覆盖,是指用尽量少的不相交的路径覆盖图中的所有顶点。
Point...
分类:
其他好文 时间:
2014-08-15 21:11:39
阅读次数:
266