二分图
文章平均质量分 77
s_h_r
这个作者很懒,什么都没留下…
展开
-
HDU 1569 二分图带权最大独立集 最小割
题意:给你一个n×m的棋盘 每个格子都有一个非负整数 从中选取一些数 使得相邻两数没有公共边 问取到的数的最大和是多少 思路:取出来的数不相邻并 也就是说如果选取一个数 它上下左右都不能选 而且和要最大 这是不是像某种图论模型 没错 是他是他就是他 二分图最大独立集~ 但是这个题目多了权值 就不能用Hungary算法来实现了 要用到网络流的知识了 具体做法是 对于奇数格子的点 将源点与该格子连边原创 2015-06-05 10:17:14 · 507 阅读 · 0 评论 -
UVA 12549 Sentry Robots 最小点集覆盖
这题的模型是二分图最小点集覆盖 即选择最少的行或列来覆盖所有的点 二分图最小点集覆盖 = 最大匹配数 本题需要注意的是障碍物会把行和列分隔开来 所以要拆行拆列 #include #include #include #include using namespace std; const int maxn = 2500 + 10; const int N = 100 + 10; in原创 2015-05-29 14:28:39 · 1342 阅读 · 0 评论 -
ZOJ 3760 Treasure Hunting 二分图带权最大独立集 最小割
题意:给你一个偶数P和二维坐标上的一些点(x, y) 权值为 x&y 让你选出其中一些点 使得权值和最大 且选中的点集中不存在这样的两点:(a, b)使得gcd(a.x^a.y^b.x^b.y, p) 思路:由于题意中已经明确说明P为偶数 而两个偶数的最大公约数永远大于1 又发现对于任意两个数A B 只要它俩奇偶性相同 则 A^B必为偶数!所以我们只需要把图中所有点的权值按照奇偶性划分 它的原原创 2015-06-09 21:09:57 · 423 阅读 · 0 评论 -
POJ 2125 Destroying The Graph 二分图最小点权覆盖 最小割
题意:给你一个n个点 m条边的有向图 给出两种操作 删除所有以i为入点的边 有一个花费 删除所有以i为出点的边 也有一个花费 问你要想删除所有边 最小花费是多少 思路:选择一个点 可以覆盖所有他的入边 也可以覆盖所有他的出边 这不就是二分图最小点权覆盖么 建图方法是 对于每个点拆成两个点 一个入点一个出点 将所有源点和所有出点连边 容量为删除出边的花费 将所有入点和汇点连边 容量为入边的花费 将原创 2015-06-10 20:42:19 · 443 阅读 · 0 评论 -
ZOJ 2342 Roads 二分图匹配
题意:给你一个n个点m条边的带权无向图 其前n-1条边构成一个生成树 问你修改各条边的值 使得前n-1条边构成最小生成树 并且各条边的改变量之和最小 思路:既然是要求前n-1条边组成最小生成树 则这前n-1条边权值一定不能增大 而剩余的边权值一定不能减少 对于前n-1条边权值w[a]和剩下的边w[b] 使得 w[a]-d[a]w[b]的边 改变其权值w[a]-d[a] #include #i原创 2015-07-31 20:46:39 · 477 阅读 · 0 评论 -
HDU 3861 The King’s Problem 强联通缩点 + 最小路径覆盖
题意:给你一个有向图,有一些规则: 1:对于两个点u v,如果存在u到v的路径并且存在v到u的路径,则他们属于同一个阵营 2:对于两个点u v,如果存在u到v的路径或者存在v到u的路径,则他们可以属于同一个阵营 3:每个点只能属于一个阵营 问你这个有向图最少能分为几个阵营思路:首先强联通缩点,对于第二条规则,其实也就是说找一条路径使得其覆盖尽量多的点,用二分图解决即可。这题不能用邻接矩阵,会原创 2015-10-12 17:56:36 · 377 阅读 · 0 评论