随笔分类 - { 图论 { 匹配\独立\覆盖集 } }
摘要:题目大概说一个n*m的国际象棋棋盘上有些格子不能放棋子,问最多能放几个骑士使得它们都不会处于互相攻击的状态。
阅读全文
摘要:题目大概说有n个yang珠子n个yin珠子,要交替串成一个环形项链,有些yang珠子和某个yin珠子相邻这个yang珠子会不高兴,问最少有几个yang珠子不高兴。 自然会想到直接用状压DP去解,转移很烦,也没写出来。标程是搜索不明觉厉。。听闻了可以枚举一边的顺序,8!,然后用最大匹配解决。 然后想到
阅读全文
摘要:题目大概就是说给一张二分图以及它的一个完备匹配,现在问X部的各个点可以与Y部那些些点匹配,使得X部其余点都能找到完备匹配。 枚举然后匹配,当然不行,会超时。 这题的解法是,在二分图基础上建一个有向图:原二分图中边(x,y)连<x,y>的弧,对于那个已知的匹配中的所有边(x,y)连<y,x>的弧,然后
阅读全文
摘要:题目大概说有几个黑色、白色矩阵,问能选出黑白不相交的矩形面积和的最大值。 建二分图,黑色矩阵为X部的点,白色为Y部,XY的点权都为其矩阵面积,如果有个黑白矩阵相交则它们之间有一条边,那样问题就是要从这个二分图中选出最大的点使其没有公共边且点权和最大。 即二分图的最大点权独立集。可以建容量网络用最小割
阅读全文
摘要:题目给张R×C的地图,地图上*表示泥地、.表示草地,问最少要几块宽1长任意木板才能盖住所有泥地,木板可以重合但不能盖住草地。 把所有行和列连续的泥地(可以放一块木板铺满的)看作点且行和列连续泥地分别作为XY部,每一块泥地看作边。这样就构造出了一个二分图。 那么,问题就是在这个二分图中就是选出最少的点
阅读全文
摘要:一个经典的构图:对格子进行黑白染色,黑白的点分别作XY部的点。 这一题的边就是可以出售的单位面积2的土地,边的端点就是这个土地占用的X部和Y部的两个点。 这样就建好二分图,要求最多土地的答案显然是这个二分图的最大边独立集,也就是最大匹配。 1 #include<cstdio> 2 #include<
阅读全文
摘要:最大点独立集就是无向图中最多的两两不相邻的点集。 二分图最大点独立集=顶点数-二分图最大边独立集(二分图最大匹配) 这一题男女分别作YX部,如果x和y有浪漫关系则连边,如此构造二分图,答案显然就是最大点独立集。另外要先进行二分图染色,以确定每个id的性别。 1 #include<cstdio> 2
阅读全文
摘要:最小点权覆盖就是,对于有点权的有向图,选出权值和最少的点的集合覆盖所有的边。 解二分图最小点权覆盖集可以用最小割: vs-X-Y-vt这样连边,vs和X部点的连边容量为X部点的权值,Y部和vt连边容量为Y部点的权值,X和Y是原二分图中的边容量为INF。 这一题建二分图是这样的:把原图中的点拆成两个点
阅读全文
摘要:最小点覆盖集就是在一个有向图中选出最少的点集,使其覆盖所有的边。 二分图最小点覆盖集=二分图最大匹配(二分图最大边独立集) 这题A机器的n种模式作为X部的点,B机器的m种模式作为Y部的点; 每个任务就作为边,端点是可以完成它的A和B的某个模式。 这样,问题就变成在这个二分图中取出最少的点覆盖所有的边
阅读全文
摘要:最大匹配也叫最大边独立集,就是无向图中能取出两两不相邻的边的最大集合。 二分图最大匹配可以用最大流来解。 如果题目没有墙,那就是一道经典的二分图最大匹配问题: 把地图上的行和列分别作为点的X部和Y部,地图上每一块空地看作边,边的两个端点就是它所在的x行y列。这样,求最大边独立集即可。 而这一题有墙,
阅读全文
摘要:人作X部;把门按时间拆点,作Y部;如果某人能在某个时间到达某门则连边。就是个二分图最大匹配。 时间可以二分枚举,或者直接从1枚举时间然后加新边在原来的基础上进行增广。 谨记:时间是个不可忽视的维度。 1 #include<cstdio> 2 #include<cstring> 3 #include<
阅读全文
摘要:把入侵者看作边,每一行每一列都是点,选取某一行某一列都有费用,这样问题就是选总权最小的点集覆盖所有边,就是最小点权覆盖。 此外,题目的总花费是所有费用的乘积,这时有个技巧,就是取对数,把乘法变为加法运算,最后再还原。 另外还可以从最小割的思路去这么理解: 每一行与源点相连,容量为该行的花费;每一列与
阅读全文