下面给出关于二分图最大匹配的两个定理: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
解题报告
题目传送门
题意:
两个人拿着两副牌,其中一人知道另一个人的手牌,问要怎么配对才能使他获得更多的点数。
游戏规则:
两张牌的第一个数大的牌的人加点。
第一个数相同就比较第二个数。
H>S>D>C
思路:
很容易建图,二分图最大匹配over
#include
#include
#include
using namespace std;
int mmap[100]...
分类:
其他好文 时间:
2014-08-15 21:14:29
阅读次数:
362
Air Raid
Problem Description
Consider a town where all the streets are one-way and each street leads from one intersection to another. It is also known that starting from an intersection and wal...
分类:
其他好文 时间:
2014-08-15 21:13:29
阅读次数:
407
HDU 1068 :题目链接
题意:一些男孩和女孩,给出一些人物关系,然后问能找到最多有多少个人都互不认识。
转换一下:就是大家都不认识的人,即最大独立集合
#include
#include
#include
#include
#include
#include
#define init(a) memset(a,0,sizeof(a))
#define PI aco...
分类:
其他好文 时间:
2014-08-15 21:13:09
阅读次数:
308
解题报告
题意:
题意类似与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
解题报告
题目传送门
题意:
一个小镇,所有的街道都是单向的,这些街道都是从一个十字路口通往另一个十字路口,已知从任何十字路口出发,沿着这些街道行走,都不能回到同一个十字路口,也就是说不存在回路。
计算攻击这个小镇需要派的伞兵最少数目,这些伞兵要走遍小镇的所有十字路口,每个十字路口只由一个伞兵走到。每个伞兵在一个十字路口着陆,沿着街道可以走到其他十字路口。
思路:
用最小的伞兵覆盖街道...
分类:
其他好文 时间:
2014-08-15 16:06:48
阅读次数:
275
解题报告
题意:
n个巫师m个魔杖,每个魔杖可以被不同的巫师使用。求多少个魔杖会被买。
思路:
二分图最大匹配简单题。
#include
#include
#include
using namespace std;
int mmap[110][110],n,m,vis[110],pre[110];
int dfs(int x) {
for(int i=1; i<=n; i...
分类:
其他好文 时间:
2014-08-15 16:02:39
阅读次数:
258
题目地址:HDU 1498
晕啊。。。三个人同时做的这个题,结果全都理解错意思了。。而且每个人理解错的地方还都不一样。。但是样例还都能过,。。。简直炫酷。。。
题意:n*n的矩阵放置不同的颜色(不同的数字代表不同的颜色),你有k次选择,每一次只能选择某一行或某一列,可以消除该行(列)的所有颜色,问有哪几种颜色,无论怎样经过k次选择后依然无法完全抹去。
这个题的思路就是分别求出每种颜色的最少操...
分类:
其他好文 时间:
2014-08-15 14:45:58
阅读次数:
174