题意:给一个有向无环图,求出来最少需要几个士兵可以遍历所有的边。分析:有向无环图的最小边覆盖 = 点数 - 最大匹配数为什么是这样的公式??可以思考一下,如果这N个点之间没有边,是不是应该有N个士兵去查看,但是如果增加一条边就应该减去这条边,以此类推,公式就比较容易明白了。*************...
分类:
其他好文 时间:
2015-08-03 20:43:09
阅读次数:
106
题意:一个矩阵中有一些点,用1*2的小矩阵覆盖这些点,求需要的最少小矩阵数;参考:http://blog.csdn.net/lyy289065406/article/details/6647040思路:无向图最小边覆盖数=顶点数-最大匹配数/2; 将每个待匹配的点用一个唯一的数字表示,相当于离...
分类:
其他好文 时间:
2015-07-20 23:01:41
阅读次数:
116
前言:
有自己写的,有摘的别人的,前面是摘的,也是无心整理,出错是难免的,反正我都不会证明,智人见智,别被我误导了。
§1图论点、边集和二分图的相关概念和性质
点覆盖、最小点覆盖
点覆盖集即一个点集,使得所有边至少有一个端点在集合里。或者说是“点” 覆盖了所有“边”。。极小点覆盖(minimal vertex covering):本身为点覆盖,其真子集都不是...
分类:
其他好文 时间:
2015-07-02 10:10:13
阅读次数:
292
看目录就好了。不用看具体部分
网络流
二分图
最大匹配
最小点覆盖
最小边覆盖
最小路径覆盖
最大独立集
最大流
上下界最大流
最小割
全局最小割
费用流
上下界费用流
线性规划转费用流
最大权闭合图
RMQ优化建图
单纯形
字符串相关
hash
KMP
扩展KMP
Ma...
分类:
其他好文 时间:
2015-04-23 09:33:21
阅读次数:
437
概念:
最大匹配:二分图上最大对数的点对使得对之间有连边,且任意两点对4个点之间互不相同
最大匹配:无视上面那条,其实就是你找一个点,然后给它连一个有边连过去且没匹配过的点,然后就称得到一个匹配。最大匹配就是匹配数最大是多少。
最大独立集:二分图上最大点数的子点集使得两两之间没有连边
最小边覆盖:二分图上最小条数的子边集使得所有点都被且仅被一条边覆盖
最小路径覆盖:拓扑图上最小条数的路径...
分类:
其他好文 时间:
2015-04-17 11:30:48
阅读次数:
122
题目大意:
有2^N个奶酪,编号从000…00到111…11,现在有台机器有N个开关,每个开关的状态有3个,
分别是'0'、'1'、'*',每个开关只能有一个状态存在。'*'状态可以替代'0'或'1'状态。比如11*1,
对应为1111或1101。现在有M个奶酪被感染了,每个奶酪的编号为长度为N的二进制字符串。
和开关一样,每一位上除了能为'1'、'0'之外,还可以是'*',表示既能是'0',也能是'1'。比如说
1*1,既可以是101,也可以是111。现在要把这些被感染的奶酪(二进制字符串)都删除掉。删除...
分类:
系统相关 时间:
2015-04-09 11:55:46
阅读次数:
172
题目大意:
在N*M的矩阵中,有K个城市要覆盖无线网。而一个无线网基站只能覆盖左右相邻或是上下相邻的两个
城市。问:至少放置多少个基站,能将这K个城市全部覆盖。输入数据时,'*'表示城市,'o'表示空地。
思路:
K个城市作为K个点,编号为1~K。如果有两个城市相邻,则两个城市之间建立一条双向边。现在问题
变为了怎么从图中选择最少的边,使得能够覆盖所有的点。可以用二分图最小边覆盖来做。首先遍历
原图,对K个城市编号,存入iMap[][]数组中。然后建立一个二分图,两边都为K个城市。如果两个城
市有边(即两...
分类:
其他好文 时间:
2015-04-03 11:20:01
阅读次数:
185
poj 3020 一般图最大匹配 带花树开花算法
题意:
给出一个h*w的图,每个点都是'o'或'*',最少要用多少个1*2的矩形才能把图中所有的'*'都覆盖掉。
限制:
1
思路:
最小边覆盖=|V|-最大匹配
一般图最大匹配,带花树开花算法
/*poj 3020 一般图最大匹配 带花树开花算法
题意:
给出一个h*w的图,每个点都是'o'或'*',最少...
分类:
编程语言 时间:
2015-03-31 09:19:59
阅读次数:
169
网络流中的一些基本概念
最大流:
最小割:
最大匹配:
最小顶点覆盖:求一个最小的点集S,使得G中任意边都有至少一个端点属于S。
最大独立集:求一个最大的点集,里面的点不存在任何的边相连。
最大团:求一个最大的点集,里面的点两两相连。
最小边覆盖:理解为边覆盖点,用最少的边把图中的点全部覆盖。
最小路径覆盖:用最少的路径把图中的所有点覆盖。
规则:
最大流=最小割
最...
分类:
其他好文 时间:
2015-03-30 21:09:27
阅读次数:
188
//最小边覆盖
//最小边覆盖=最大独立集=n-最大匹配
//这个是在原图是二分图上进行的
//由于此题为无向图
//最小边覆盖=最大独立集=n-最大匹配/2;
#include
#include
#include
using namespace std;
const int maxn = 45*15;
int line[maxn][maxn];
int match[maxn...
分类:
其他好文 时间:
2015-03-21 23:00:49
阅读次数:
290