
二分匹配
韦我独尊-德天独厚
这个作者很懒,什么都没留下…
展开
-
HDU1054 Strategic Game 二分匹配
#include#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define LL __int64#define eps 1e-8const ll INF=999999999999原创 2013-10-15 22:29:52 · 734 阅读 · 0 评论 -
HDU1150 二分匹配 最少点覆盖=最大匹配数
3个重要结论:最小点覆盖数: 最小覆盖要求用最少的点(X集合或Y集合的都行)让每条边都至少和其中一个点关联。可以证明:最少的点(即覆盖数)=最大匹配数最小路径覆盖=最小路径覆盖=|N|-最大匹配数用尽量少的不相交简单路径覆盖有向无环图G的所有结点。解决此类问题可以建立一个二分图模型。把所有顶点i拆成两个:X结点集中的i和Y结点集中的i',如果有边i->j,则在二分图中引入边i->j原创 2013-10-17 19:31:18 · 970 阅读 · 0 评论 -
poj 1325 Machine Schedule 二分匹配
转载了别人的分析分析:显然,机器重启次数是两台机器需要使用的不同模式的个数。把每个任务看成一条边,即A机器的每个模式看成一个X节点,B机器的每个模式看成一个Y节点,任务i为边(ai, bi)。本题即求最少的点让每条边至少与其中的一点关联,即求一个点的最小覆盖。可以证明,这个最小覆盖就是该二分图的最大匹配数。故二分图匹配的模型就建好了。注意到开始时机器都处于0模式,所以如果某个任务可以在0模式下原创 2013-10-20 20:40:28 · 708 阅读 · 0 评论 -
二分匹配进步例题,这个博主写的很好的
转自:http://blog.youkuaiyun.com/hackbuteer1/article/details/7398008建议看他的分析以及想法,他的有些做法我觉得还是有些难的,不懂了就看看他的想法 跟分析,然后自己构建图去做好了 二分图指的是这样一种图,其所有顶点可以分成两个集合X和Y,其中X或Y中任意两个在同一集合中的点都不相连,所有的边关联在两个顶点中,恰好一个属于转载 2013-10-20 22:08:42 · 1712 阅读 · 0 评论 -
关于二分匹配的基础图论知识
这是我同学写的,挺不错的 就转来,图画的难看了点,不过意思很到位!!九野的博客,转载请注明出处:http://blog.youkuaiyun.com/acmmmm/article/details/12891989 图分成点和边所有点组合成一个集合:点集,一般用 V 表示所有边组成一个集合:边集,一般用 E 表示所以一个图可以表示为 G =转载 2013-10-21 18:55:02 · 916 阅读 · 0 评论 -
poj2226 Muddy Fields
这道题跟poj3041其实是一样的,只不过3041是一下子可以消除一行或者一列,这里可以转化一下,把每一行或者每一列 的连续的 水洼 设为同一个点即可,这样就能转化为poj3041,#include#include#include#include#include#include#include#include#include#include#in原创 2013-10-21 19:07:56 · 818 阅读 · 0 评论 -
poj2060 Taxi Cab Scheme 最小路径覆盖=顶点数-最大匹配数
题意,租车,有n个预约,然后给出时间,然后给出地点,地点在一个二维坐标平面内,会给你两个坐标,求所需车最少数量;分析:这道题目跟poj2594一样穿了个马甲,2594是需要用一个floyd来转化,这里呢,根据坐标可以算出路径长度从而得到所需时间,如果本次预约任务结束时还有另一个预约时间还没到的话,那么这两辆出租车可以接着去跑另一个任务,这样建图时就可以把两个预约连在一起,讲原创 2013-10-21 21:46:56 · 885 阅读 · 0 评论 -
poj2594 Treasure Exploration 最小路径覆盖=顶点数-最大匹配数
这道题走过的点可以重复走,这样不符合二分匹配,可是我们可以转化,最简单的就是使用floyd,比如说 1->2->3,2号点已经走过了,我们可以赋予从1->3可以直接到,不需要经过2号点就可以了,这样2号点就不会出现被重复覆盖的现象,那我们就使用floyd来解决问题,剩下的就是套模版的问题了#include#include#include#include#include#i原创 2013-10-21 19:44:15 · 1106 阅读 · 0 评论 -
poj1422 Air Raid 最小路径覆盖=顶点数-最大匹配数
这是一道最小路径覆盖的题目,做最小路径的题目会有一个拆点的操作出现,我这里的拆点操作顺带做好了,并不是很明显,poj3020就很清楚了;给个poj3020的博客,拆点操作写的很详细 http://blog.youkuaiyun.com/lyy289065406/article/details/6647040,这里的拆点操作讲的很好的,大神嘛就是不一样接下来给一个 链接 是这道题目也就是po原创 2013-10-21 20:57:32 · 1005 阅读 · 0 评论 -
poj2115 Looooops 扩展欧几里德
x=[ (B-A+2^k)%2^k ]/CC*X=(B-A+2^k)%2^k一开始 方程不知道咋办 后来 看到别人统一一下变量 顿时 愚蠢的我感觉清晰了一点点 令a=C, b=B-A, MOD=2^k;方程变成了 ax=(n+MOD)%MOD;看到某个大神贴的一张图片很给力 我也贴一下,顺便贴一下他的解析过程,很容易懂得,一开始学数论 不可能自己完全推出来 都是要看要做,做多了原创 2013-10-27 22:11:14 · 958 阅读 · 0 评论 -
HDU2819 Swap 看似很难的题目其实用二分匹配就解决了
还是转载了别人的分析,这道题目我做的时候看到过的人很少,自己害怕了,还好自己在做二分匹配的专题,就用二分匹配的想法去想,结果做出来了,unbelivevable!!!接下来是分析:转自 http://blog.youkuaiyun.com/hackbuteer1/article/details/7398008这个博主的做法建图方式有些独特比较难懂,我还是常规建图其实就是简单的二分匹配,行和列匹原创 2013-10-20 22:05:46 · 814 阅读 · 0 评论 -
Uva11419 I AM SAM 我是山姆 二分匹配
这是白书上给出的题目,我去做了下,题意跟poj3041很像,给一个矩阵,再给出障碍物,一个子弹可以清除一整行或者一整列的障碍物,问最少 需要打几枪,同时把开枪的位置给输出来,分析:求打几枪 很简单,先做一下poj3041就知道了, 最少打几枪 反过来想 其实就是问 最多有几个点 不在同一个行也不在同一列上,至于开枪的位置,可以开两个数组,这里是行与列进行匹配,所以 行 在左集合原创 2013-10-22 15:05:03 · 2354 阅读 · 0 评论 -
HDU2119 Matrix 很经典的做法 二分匹配最大匹配数
这道题目跟poj3041一模一样,没有任何区别, 因为一次可以消除某一整行 或者 某一整列的1,所以题目可以反过来想,最多有多少个 1 既不在同一行也不在同一列,这样就可以进行行列匹配,求最大匹配数即最多有多少个 1 既不在同一行也不在同一列, 做出后记得关注一下poj2226,那道题目可以转化为本道题目,那个方法很经典,同时也让我认识到了最小路径覆盖 的正确使用,印象很是深刻#i原创 2013-10-22 20:47:03 · 1035 阅读 · 0 评论 -
HDU2236 无题II 二分匹配+二分枚举
设vmin为矩阵中最小元素,设vmax为矩阵中最大元素,那么答案肯定在(0~vmax-vmin)之间,所以可以二分枚举差值,再在每一个差值里面枚举长度为这个差值的区间,若在该差值的区间内存在最大匹配数 更新二分区间的 right,否则更新left;这道题目做的时候一直超时,后来改改就不超时了,现在还不知道为什么呢,看来大家做法都是大差不差的,不过这道题目其实有一个很淫荡的做法,因为x,n的原创 2013-10-22 20:22:46 · 1071 阅读 · 0 评论 -
HDU1845 Jimmy’s Assignment 984ms 飘过啊 汗死 二分匹配最大匹配数
984ms飘过,其实就是卡过去的,纯属看人品的 代码,使用了邻接表,更快点,这道题目 他的匹配点 是自己的,所以以前 那个标记 点是否被连过的数组 要设两个,一个表示左集中的点 一个在右集中的点,#include#include#include#include#include#include#include#include#include#include原创 2013-10-22 21:23:44 · 1134 阅读 · 0 评论 -
poj1274 The Perfect Stall 二分匹配简单题
题意:农夫约翰上个星期刚刚建好了他的新牛棚,他使用了最新的挤奶技术。不幸的是,由于工程问题,每个牛栏都不一样。第一个星期,农夫约翰随便地让奶牛们进入牛栏,但是问题很快地显露出来:每头奶牛都只愿意在她们喜欢的那些牛栏中产奶。上个星期,农夫约翰刚刚收集到了奶牛们的爱好的信息(每头奶牛喜欢在哪些牛栏产奶)。一个牛栏只能容纳一头奶牛,当然,一头奶牛只能在一个牛栏中产奶。输入:第一行 两个整数,N原创 2013-10-20 19:46:08 · 805 阅读 · 0 评论 -
poj2446 Chessboard 二分匹配
这个做法跟poj3020很相似,但是因为是用1*2的矩阵去铺盖,看铺盖是否能完成,所以做法有些不一样,想法讲一下,由于表达能力有限。所以复制了一个讲法比较好的一段话,这段话讲的很清晰,有时候自己做得出来 但是要讲却还是讲不好的,下面给出这段话以及他的代码,我自己的代码会放到最后//poj_2446/*====================================原创 2013-10-20 19:10:37 · 693 阅读 · 0 评论 -
HDU2063 二分匹配基础题目
#include#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define LL __int64#define eps 1e-8const ll INF=999999999999原创 2013-10-15 13:57:20 · 695 阅读 · 0 评论 -
二分匹配 模版 及最大总结 及 题目集合 +解析
转自kuangbin大神http://www.cnblogs.com/kuangbin/archive/2012/08/26/2657446.html二分图匹配(匈牙利算法)1。一个二分图中的最大匹配数等于这个图中的最小点覆盖数König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数。如果你还不知道什么是最小点覆盖,我转载 2013-10-15 13:30:20 · 1344 阅读 · 0 评论 -
poj3041 Asteroids 二分匹配匈牙利模版题目
题目是给一个矩阵,再给出坐标,表示此坐标处有星星,主人公有一把很牛逼的枪,打一下能消灭一排或者一列的星星,问最少打几枪,反过来想其实就是求出最多有几个星星不在同一列也不再同一行#include#include#include#include#include#include#include#include#include#include#include#include#i原创 2013-10-16 16:42:55 · 662 阅读 · 0 评论 -
二分匹配模版
int lef[N], pn;//lef[v]表示Y集的点v 当前连接的点 bool T[N]; //T[u] 表示Y集 u 是否已连接X集vectorG[N]; //匹配边 G[X集].push_back(Y集) 注意G 初始化bool match(int x){ // x和Y集 匹配 返回x点是否匹配成功 for(int i=0; i<G[x].size(); i++)转载 2013-10-15 13:55:57 · 821 阅读 · 0 评论 -
HDU1281 棋盘游戏 二分匹配
做这道题目的时候建议先去做一下poj3041,超级爽的感觉这题目做出来,真心话 先做poj3041,再做这道题目 效果真的很好,这道题是中文的,直接贴代码了#include#include#include#include#include#include#include#include#include#include#include#include#inclu原创 2013-10-17 22:54:40 · 687 阅读 · 0 评论 -
HDU1068 二分匹配
3个重要结论:最小点覆盖数: 最小覆盖要求用最少的点(X集合或Y集合的都行)让每条边都至少和其中一个点关联。可以证明:最少的点(即覆盖数)=最大匹配数最小路径覆盖=最小路径覆盖=|N|-最大匹配数用尽量少的不相交简单路径覆盖有向无环图G的所有结点。解决此类问题可以建立一个二分图模型。把所有顶点i拆成两个:X结点集中的i和Y结点集中的i',如果有边i->j,则在二分图中引入边i->j原创 2013-10-17 18:52:17 · 778 阅读 · 0 评论 -
poj1469 COURSES 二分匹配基础题
依然是二分匹配,跟HDOJ的1150一模一样,#include#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define LL __int64#define eps 1e-原创 2013-10-17 20:39:38 · 668 阅读 · 0 评论 -
HDU3605 Escape 多重匹配
给出每个人适合住的星球信息和该星球能住多少人,第一行给出n m 代表有 n 个人 m 个星球,然后接下来n行每行m个数字 ,代表可以住到第 i 个星球,0代表不可以住到第 i 个星球,最后一行m个数表示第 i 个星球最多可以住多少个人,问是不是所有人都可以搬离地球,以前的匹配左集合 中一个点 对应右集合中的一个点,点只能使用一次,现在变成左集合中的一个点对应右集合中的多个点原创 2013-10-24 16:28:25 · 939 阅读 · 0 评论 -
HDU2389 Rain on your Parade 二分匹配 Hopcroft-Carp的算法+模版
这道题目一开始用最常用的匈牙利算法就超时,后来网上查了一下,原来给忘了二分匹配中还有一个Hopcroft-Carp的算法,直接找了个模版套了一下,1A,好开心先讲一下题目的意思,第一行案例数,每个案例第一行 代表还有多少单位时间开始下雨,然后是 N个访客,接下来N行是 每个访客的位置(一维坐标平面内)和他的移动速度,接下来M行 代表雨伞数目,接下来M行表示各个雨伞的位置,问在下雨前 最原创 2013-10-24 19:14:15 · 1094 阅读 · 0 评论 -
HDU2255 奔小康赚大钱 又是984ms 飘过汗啊 最大权匹配 KM算法模版题
最近跟984ms很有爱啊,再次以984ms飘过!!!这道题不可以说是模版题目,因为它就是个模版,简直就是一模一样的模版,做了这道题你就知道什么是模版,模版长什么样子了,我反正照着模版打的,打出来跟模版长得一样题目是中文的 不用解释了先贴一个模版想要快点的 自己改成个邻接表形式的就可以了#include #include #define N 1001#de原创 2013-10-24 22:13:42 · 1010 阅读 · 0 评论 -
二分图匹配(Hopcroft-Carp的算法) 模版
/**********************************************二分图匹配(Hopcroft-Carp的算法)。初始化:g[][]邻接矩阵调用:res=MaxMatch(); Nx,Ny要初始化!!!时间复杂大为 O(V^0.5 E)适用于数据较大的二分匹配 **************************************转载 2013-10-24 18:28:24 · 1080 阅读 · 0 评论 -
HDU1528 Card Game Cheater 二分匹配最大点覆盖问题
这道题目还是比较简单的 就是建图有些问题Adam和Eve打牌,Eve是能够可以看到Adam的牌,牌的顺序先看大小,如果大小一样,再看C,D,H(依次增大),每次出一张牌,大的算赢一次,求出Eve最多能赢多少次。#include#include#include#include#include#include#include#include#inclu原创 2013-10-24 20:37:46 · 1001 阅读 · 0 评论 -
HDU1853 Cyclic Tour KM算法 模版题
这道题目就是个模版题目,求的是走完图中所有点的最短的路径长度,KM算法 是 最大权匹配,算的是最大权值,但是我们在建图的时候 把权值改为负的就可以了,这样进行KM算法 算出来的 是最大的负数,其实就是最小的正数,#include#include#include#include#include#include#include#include#include#incl原创 2013-10-25 20:10:51 · 967 阅读 · 0 评论 -
poj3020 Antenna Placement 二分匹配 最小路径覆盖
#include#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define LL __int64#define eps 1e-8const ll INF=999999999999原创 2013-10-20 18:16:55 · 801 阅读 · 0 评论 -
FZU2039 Pets 二分匹配
二分匹配的题目,建图比较重要,n个人m个宠物,接下来e行,每行两个数字x,y,代表编号为x的人不喜欢编号为y的宠物,意思就是x肯定不会选y,人跟宠物进行建图,可以构成一个二分匹配图,注意题目给的x,y是不能选的,所以在你建的图map里面 要跟一般的二分匹配题目反过来进行标记#include#include#include#include#include#include#in原创 2014-03-01 18:38:56 · 923 阅读 · 0 评论