二分图
文章平均质量分 79
sdj222555
这个作者很懒,什么都没留下…
展开
-
HDU 3991 最短路+最小路径覆盖
题目大意就是,有一个图,上面有一些顶点,代表一些城市,在某些时刻, 某个城市里会有人需要礼物, 哈利波特需要及时的将礼物送到,但是哈利每1秒只能走一个单位长度,所以他需要朋友的帮助,来使所有的人都能及时的收到礼物。问需要的最少的朋友个数。那么看完题目后,实际上可以发现其跟路径覆盖非常有关系,因为是一些人走一些路径来将礼物送到。所以要先将任意两点间的最短路求好。然后枚举任意两个任务,原创 2012-04-10 22:43:57 · 748 阅读 · 0 评论 -
POJ 3686 The Windy's KM算法
这题的建图实在是太神了假设某个机器处理了k个玩具,那么对于这些玩具,有两种时间,一种是真正处理的时间,一种是等待的时间,等待的时间就是之前所有处理的玩具的时间,假设这k个玩具真正用在加工的时间分为a1,a2,a3...ak, 那么每个玩具实际的时间是加工的时间+等待时间,分别为a1, a1+a2, a1+a2+a3.......a1+a2+...ak 求和之后变为 a原创 2012-08-11 16:20:59 · 1130 阅读 · 0 评论 -
HDU 1853 Cyclic Tour KM算法
此题的模型转化比较好题目说是有向图,把图分成一些环,使得构成这些环总的边权值最小, 环的特性是最少两个点。观察环这个限制,实际上就是每个点有且只有一个出边,有且只有一个入边,并且不能是自环这可以跟匹配联系起来,将每个点拆成u, u' 然后 如果有一条边(u,v, w)就建一条(u, v ', w)的边最后求匹配,如果左边的点都匹配到了,显然是每个点都有了一个出边,右边的点都原创 2012-08-11 17:14:50 · 872 阅读 · 0 评论 -
POJ 2400 KM算法 最小权匹配 回溯输出所有最优匹配方案
很蛋疼的一题 首先输入就很蛋疼, 据网上的神牛们纷纷说题目的矩阵给反了。然后按反着来还真给过了KM的话 由于是 n与n的匹配,所以直接取负求KM毫无压力但是如果两边点数不等,据说会有问题 #include #include #include #include #include #include #define MAXN 505#define MAXM 5原创 2012-08-11 11:10:49 · 1204 阅读 · 0 评论 -
SGU 206 Roads KM算法 匹配模型的转化
这是一道非常好的题目题目大意:给了一个图,n个点,m条边,其中前n-1条边保证是生成树,现在你可以修改每条边的边权,花费为修改量,然后用最小的花费修改使得前n-1条边为最小生成树这题乍一看无从下手实际上可以这么分析边可以分为两类,一种是前n-1条边,构成了一个生成树,其他的边是另外一种边显然如果我们要达到最小生成树的目的,就要让生成树上的边变小,而另外的边变大从第n条边原创 2012-08-12 16:11:44 · 1513 阅读 · 0 评论 -
SPOJ 412 K-path cover 匹配
http://hi.baidu.com/roba/blog/item/c842fdfac10d24dcb48f31d7.htmlroba的解说题目链接题目大意就是说,给N个点,每个点都有一个权值,某些点之间存在有向边,有向边的权值为它的两端点权值之和。现在要求从中选出K条边,使得没有任何两条边共头或共尾,问K条边的权值和最小为多少。数据范围大的吓人,原创 2012-08-13 19:20:22 · 2198 阅读 · 0 评论 -
HDU4606 Occupy Cities 计算几何+最小路径覆盖
题目大意如下在一个二维坐标系中,有n个城市,坐标给出来了,然后有p个士兵要去占领这n个城市,但是路上有m个路障,都是线段,士兵不能越过路障前进。每个士兵都有相同容量大小的一个干粮袋,每到一个城市他就能补充满自己的干粮袋。中途走路时走一个单位长度就消耗一个单位的干粮。现在问的是这些个干粮袋最小的容量是多少,前提是保证p个士兵能占领完这n个城市,城市被占领顺序也是题目给好的,必须遵守原创 2013-08-15 09:31:47 · 1312 阅读 · 0 评论 -
HDU 4685 二分图匹配+tarjan
这题跟POJ的1904很像。大意就是有n个王子和m个公主每个王子都会喜欢若干个公主,也就是王子只跟自己喜欢的公主结婚公主就比较悲惨, 跟谁结婚都行然后输出王子可能的结婚对象必须保证王子与任意这些对象中的一个结婚,都不会影响到剩余的王子的配对数,也就是不能让剩余的王子中突然有一个人没婚可结了然后思路其实跟POJ1904非常像。但是POJ那题给出了初始的一个完备原创 2013-08-15 21:08:48 · 4042 阅读 · 0 评论 -
UVALive 6198 A Terribly Grimm Problem
题目大意是给出L,H 10^10范围为[L, H]这个连续的整数区间寻找一个序列。序列的长度要跟[L, H]一样然后序列中的数都是素数,并且互不相同并且序列中第i个数 要求是L + i -1的一个素因子 最后要求序列的字典序最小然后可以看到L,H很大但是我们需要注意的是,这个序列长度肯定不会很大太大了肯定满足不了题目的要求。原创 2013-10-06 01:03:44 · 1243 阅读 · 0 评论 -
POJ 2516 Minimum Cost KM算法 或者 最小费用最大流
这题还是挺裸的当然 是用最小费最为方便。建图一目了然KM麻烦那么一点,就是每个物品要拆成一份一份的。建图的时候注意,KM匹配的模板一定是左边的点数不大于右边的点数 至少我的模板是这样的在本题中,要求供应商提供的东西要满足商店的需求,不能满足就直接输出-1, 所以理论上商店的点应该比供应商少,商店的点应该放在左边,供应商放在右边由于是最小权匹配,所以我这里用了一个比较大原创 2012-08-11 14:55:08 · 1605 阅读 · 0 评论 -
POJ 2226 二分图 最小点覆盖
这题的建图比较神首先要明白题意是要覆盖所有的污泥,而不能把草地也给覆盖了刚开始我就把草地也给覆盖了,显然不行。那么就需要划分为一个一个的线段来进行覆盖将所有横着的线段分别预处理出来,每个线段给一个编号同样所有竖着的线段预处理出来。注意只要是连续的几个污泥块就属于同一个线段,横着的和竖着的分别处理。然后对每个污泥,用其所属的横线段的编号跟所属的竖线段的编号连边。最后转化为原创 2012-08-10 19:56:35 · 841 阅读 · 0 评论 -
POJ 2594 允许有相交点的最小路径覆盖
这题跟传统的路径覆盖不同的是任意两条路径间可以相交点这就需要进行一些改变有一个大牛解释的非常好,如果一个机器人在路上走着,碰到了别的路径的点,那就直接飞过去好了。也就是直接到了之前间接能到的点。那么我们事先用floyd把每个点能到达的点,不管是直接或者间接能达到的,处理一下然后建图就好了#include #include #include #include #inclu原创 2012-08-10 16:49:19 · 639 阅读 · 0 评论 -
POJ 3020 最小边覆盖
题目大意就是有一些'o'和'*'构成的图,每个*可以与其四周的'*'连一条边,但是连完之后这两个‘*’就称作被覆盖了,不能与其他的'*'发生交集了。 然后问用最少的边能把所有的‘*’都覆盖掉看到是两两连边不由得想起二分图匹配,实际上就是用最少的边覆盖所有的点的问题,我觉得最小边覆盖实际上就是最小路径覆盖的一个特殊情况,只不过要求必须是二分图才行而最小路径覆盖只要是PxP的有向图就行。 而他原创 2012-04-10 09:52:55 · 2402 阅读 · 0 评论 -
POJ 1422 Air Raid 最小路径覆盖(二分图匹配)
一个PXP的有向图中,路径覆盖就是在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联;(如果把这些路径中的每条路径从它的起始点走到它的终点,那么恰好可以经过图中的每个顶点一次且仅一次);如果不考虑图中存在回路,那么每条路径就是一个弱连通子集. 由上面可以得出: 1.一个单独的顶点是一条路径; 2.如果存在一路径p1,p2,.原创 2012-02-07 16:02:05 · 922 阅读 · 0 评论 -
HDU 2426 Interesting Housing Problem 最小费用最大流 or KM算法
这道题貌似是08年杭州网络赛的题目, 看完题后就发现是个最优匹配问题,用KM或者最小费用最大流做, 就找了个最小费用最大流的模板,改了一下,就能过了、建图还是比较好想的,建立一个超级源点,一个超级汇点,然后源点与学生连边,流量限制为1,费用为0,汇点与房间连边,流量限制为1, 费用为0, 然后学生与房间之间的边,流量限制是1,费用就是题目给的喜好值了, 注意,每次加边,都要加一个相应的反向边,原创 2011-11-13 15:39:48 · 1085 阅读 · 0 评论 -
POJ 2195 Going Home 最小费用最大流 or KM算法
题目大意是一张地图中,有n个人要走回n个房子里,然后人只能横着或竖着走一格,求他们回家的距离总和最短。这道题看起来是个最优匹配问题,用KM或者最小费用最大流做首先把每个人与每个房子之间的距离求出来然后就是套用模板了#include #include #include #include #include #include #include #include #in原创 2012-01-14 11:32:29 · 858 阅读 · 0 评论 -
POJ 2112 二分图多重匹配+二分+floyd
题目意思不在赘述二分图多重匹配一般都可以用网络流来做,只不过网络流的代码太长。具体看代码把#include #include #include #include #include #include #include #include #define MAXN 250#define MAXM 100005#define INF 1000000007#defi原创 2012-07-20 13:04:44 · 954 阅读 · 0 评论 -
POJ 1486 二分图最大匹配 必要匹配
本题的意思就是把所有的必要匹配输出,但是貌似没说必须是满的匹配所谓必要匹配在本题中的意思就是,在所有的最大匹配中,1个数字都会匹配到同一个字母上去。那么这个数字和字母的匹配就是必要匹配了使用的方法就是进行删边,先做一次最大匹配,然后对每个数字,将其匹配的边删掉后的图中进行寻找增广路的操作,如果能找到增广。说明该数字的匹配不唯一。否则就输出。另外本题最好用邻接矩阵来做,因为数字比较小原创 2012-08-10 14:24:07 · 1007 阅读 · 0 评论 -
POJ 1325 Machine Schedule 最小点覆盖
机器A的所有模式为左部顶点,机器B的所有模式为右部顶点,然后A与B之间的每条连线代表一个任务或工作之后就要完成所有的任务,即将每条边都覆盖对一个有向图,若要覆盖每条边,至少需要的点数为二分图最大匹配数 建图的方法还是拆点。代码如下/*ID: sdj22251PROG: inflateLANG: C++*/#include #include #include原创 2012-02-19 13:39:12 · 747 阅读 · 0 评论 -
POJ 1466 Girls and Boys 最大独立集 二分图匹配
大意就是有n个人,每个人与其他的某几个人有关系,这个关系且称为浪漫关系,然后最后求一个最大的集合,使得集合中所有的人两两之间都不存在浪漫关系。看到之后就可以发现,这是一道非常明显的最大独立集的问题,可以转化为二分图来做,还是最经典的拆点建图,然后根据定理,最大独立集=顶点数-最小点覆盖数。 而对于这道题来说,我们可以发现这个浪漫关系是相互的。而我们的建图中,按理来说应该是一边是男原创 2012-04-04 21:57:41 · 1823 阅读 · 0 评论 -
POJ 3715 Blue and Red 二分图
说是有一个军事演习n个士兵,其中有m个关系表示某两个人是好友现在士兵已经分好了两组了,用来进行对抗,但是这两组之间可能有好友,会影响军事演习的情况所以要去掉尽量少的人,使得这个两组之间没有好友。那么题目给了一个分组方案了, 但是不同组之间可能有好友,我们就要在这些个不同组的好友之间 连边然后求二分图最大匹配,求出来的结果就是要去掉的人数但是题目又要求字典序要原创 2015-01-23 00:38:57 · 1674 阅读 · 0 评论