二分图的最小顶点覆盖 定义:假如选了一个点就相当于覆盖了以它为端点的所有边。最小顶点覆盖就是选择最少的点来覆盖所有的边。 方法:最小顶点覆盖等于二分图的最大匹配。 我们用二分图来构造最小顶点覆盖。 对于上面这个二分图,顶点分为左右两个集合,X集合包含1,2,3,4,Y集合包含5,6,7,8,9.假如 ...
分类:
其他好文 时间:
2018-10-15 20:25:22
阅读次数:
280
题意 Frank是一个思想有些保守的高中老师。有一次,他需要带一些学生出去旅行,但又怕其中一些学生在旅行中萌生爱意。为了降低这种事情发生的概率,他决定确保带出去的任意两个学生至少要满足下面四条中的一条。 1.身高相差大于40厘米 2.性别相同 3.最喜欢的音乐属于不同类型 4.最喜欢的体育比赛相同 ...
分类:
其他好文 时间:
2018-07-13 21:28:51
阅读次数:
172
Description 给定一个01矩阵,其中你可以在0的位置放置攻击装置。每一个攻击装置(x,y)都可以按照“日”字攻击其周围的 8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1), (x+1,y+2),(x+2,y+1) ...
分类:
其他好文 时间:
2018-04-01 13:13:08
阅读次数:
149
讲解前首先引入两个概念 二分图最小点覆盖集 定义: 在二分图中求出一个 最小点集 使得图中任意一条边至少有一个端点在点集内 解法: 对二分图进行 最大匹配 最大匹配数就是二分图的最小点覆盖集包含的点数 二分图最大独立集 定义: 对于一张 无向图 求出一个点数最大的点集 使得点集中任意两点没有边相连 ...
分类:
其他好文 时间:
2018-03-25 11:59:01
阅读次数:
233
1 /* 2 公式: 3 二分图最小顶点覆盖 = 二分图最大匹配 4 DAG图的最小路径覆盖 = 节点数(n)- 最大匹配数 5 二分图最大独立集 = 节点数(n)- 最大匹配数 6 */ 7 8 #include 9 using namespace std; 10 11 const int N=1... ...
分类:
编程语言 时间:
2018-03-22 13:42:36
阅读次数:
211
4808: 马 Description 众所周知,马后炮是中国象棋中很厉害的一招必杀技。"马走日字"。本来,如果在要去的方向有别的棋子挡住(俗 称"蹩马腿"),则不允许走过去。为了简化问题,我们不考虑这一点。马跟马显然不能在一起打起来,于是rly在 一天再次借来了许多许多的马在棋盘上摆了起来……但这 ...
分类:
其他好文 时间:
2017-10-31 23:58:04
阅读次数:
394
题目应该就是最大独立集了吧,没什么了,平面图求最大独立集需要/2的, WQH说加直接+双向边考研过,结果真的过了,应该是匈牙利算法寻找的 时候更加快了吧。(方便找边) 其实还有更优秀的思想 (图太丑,不管了) 这里可以,将平面图分成这样的格点图,玩过国际象棋的都知道,马是一黑一白交替着走的, 也就说 ...
分类:
其他好文 时间:
2017-10-12 10:33:21
阅读次数:
134
传送门 模型 二分图最大独立集,转化为二分图最大匹配,从而用最大流解决。 实现 首先把棋盘黑白染色,使相邻格子颜色不同。 把所有可用的黑色格子看做二分图X集合中顶点,可用的白色格子看做Y集合顶点。 建立附加源S汇T,从S向X集合中每个顶点连接一条容量为1的有向边,从Y集合中每个顶点向T连接一条容量为 ...
分类:
其他好文 时间:
2017-06-14 19:24:35
阅读次数:
218
首先是题目链接 http://codevs.cn/problem/1922/ 结果发现题目没图(心情复杂 然后去网上扒了一张图 大概就是这样了。 如果把每个点和它可以攻击的点连一条边,那问题就变成了求二分图的最大独立集了 (二分图最大独立集:即一个点集,集合中任两个结点不相邻),然后就是建图了。 题 ...
分类:
其他好文 时间:
2017-05-19 19:32:01
阅读次数:
354
思路: 棋盘是个二分图 那就把一个可以走的白点 向所有可以走的黑点连边 跑一个最大匹配 (匹配上了就代表这两个点不能共存) 最大独立集=sum-最大匹配 ...
分类:
其他好文 时间:
2017-04-01 09:48:43
阅读次数:
203