二分匹配/KM
小狐狸jun
菜鸟飞呀飞~
展开
-
hud1150二分图最小顶点覆盖
弱菜需要更加多的学习!!英文题还是给出题意吧,英文太头疼了。。。 题意: A机器n种工作模式,B机器m种工作模式,共有k个任务。(i,x,y)代表:任务i可由A机器x模式或者B机器y模式完成。任务顺序可以随便改动,如果A或者B机器需要更换模式,则需要重启机器。求完成工作,需要最少启动机器次数。 解题思路: 画出二分图,易知该问题为最小点覆盖问题,根据König定理:原创 2013-04-12 21:25:20 · 710 阅读 · 0 评论 -
hdu1045 二分匹配
这题我是在总结过程中想找二分匹配做做的,如果是平时我估计就直接深搜了。。二分匹配一开始没想出来如何建图,开始的思路有点阻塞,后来突然就明白了。题意,给一个n*n的棋盘 图中有X和。其中X代表墙,问棋盘中最多能放多少个‘车’使每个车都安全。先对行搜索,一行中若隔一个X则相当于有2行,找出所有的行并标上序号,然后对列同样进行操作。这样二分图的两边的点就全找出来了。然后对于图中每一个‘原创 2013-06-03 20:56:01 · 1234 阅读 · 0 评论 -
hdu2426 二分最优匹配KM算法
这题。。。。很明显的二分匹配。但是要注意没有匹配上的情况。由于学生和宿舍时一一匹配,则需要n同时,在求KM算法中要判断是否能完备匹配,即在找d的时候,判断是否能找到。注意图的初始化为负无穷。代码:#include#include#include#includeusing namespace std;#define CLR(arr, what) memset(原创 2013-06-03 22:06:31 · 584 阅读 · 0 评论 -
hdu2255二分最优匹配KM标准模板
其实与今天做的强连通那倒模板题一样,代码不能完全理解,到学会了如何判断是否能用km模板来做,而且也学会了套用km模板来ac了,但是原理却还是不太清楚,果然还是要继续慢慢想明白才行啊,先贴出模板吧,明天再做一下km,继续理解下去。 代码:#include#include#include#includeusing namespace std;#define CLR(ar原创 2013-04-16 22:13:25 · 587 阅读 · 0 评论 -
hdu2813字典树+KM
整晚都耗在KM上了。。。。果然不完全理解代码模板用起来太吃力了,其中若使用取负值的时候在正常KM模板上会在中途出错,之前也没给出标准的KM模板当然这题的字典树可以不要,而且我用的也很粗糙有很多东西还能优化,但是加深了对字典树的使用,所以说知道结构之后会非常灵活方便呀~~~最后今天编辑一下,总结下KM算法要注意的地方,首先是边值n,m控制好,然后就是建图:要注意的是:若图不能将图填满,则原创 2013-04-18 22:30:08 · 488 阅读 · 0 评论 -
hdu3395纯KM
题意比较奇葩,就是n条鱼,相互之间在map==1时能交配生出他们val的异或值的后代,求最大后代的值。直接套用模板。。。。这里发现之前的模板有错,所以我用这个模板重新去敲前面那题,找一下前面的错误。。。找模板真不是好习惯。。。 代码:#include #include #include #define INT_MAX 0x3f3f3f3f#define INT_MI原创 2013-04-18 16:36:12 · 491 阅读 · 0 评论 -
hdu2063二分匹配基础
第一道二分匹配,这题自己的理解就是在两组人中,先枚举一组人,找到与其匹配的人,若该人未被匹配->标记匹配,否者递归找(与该人匹配的同一组人是否还有其他可匹配的关系)。不知道是不是这样,先做一些简单题吧!这题不知道男生人数的输入有什么作用- -。而且开始的时候犯了个非常二的错误,把男生与女生输入顺序输错了!囧!!唉,弱菜无地自容啊。。代码:#include#includeusin原创 2013-04-12 20:27:13 · 527 阅读 · 0 评论 -
hdu1083二分匹配基础
好吧,一晚上无限次的暴露自己是弱菜的级别。。。。本来开开心心的套用二分匹配模板,结果因为没有弄清谁匹配谁弄混匹配次数而不能1A。怨念啊。。。。注意注意注意,下次二分一定要注意! 代码:#include#includeusing namespace std;#define MAXN 333int map[MAXN][MAXN];int tmp[MAXN];原创 2013-04-12 22:45:47 · 502 阅读 · 0 评论 -
hdu1151二分匹配基础
和1150基本一样,也是最小覆盖点=最大匹配个数唉,再次感叹弱菜。。。。。题意我都没懂。。。我的天。。直接看样例做的。。。。代码:#include#includeusing namespace std;int map[200][200];int tmp[200];int flag[200];int n,m;int DFS(int x){ f原创 2013-04-12 22:16:28 · 409 阅读 · 0 评论 -
hdu 3722 二分图 最优完备匹配 KM算法
这题只要想到是最优完备匹配就行了;题意:给出n个字符串,若两两相连,将前一个反置添加到后一个后面,相连的值为两个字串从头开始相等的字符个数;问如何匹配得出最大值;思路:建图,套模板。代码:#include#include#include#includeusing namespace std;#define CLR(arr, what) memset(a原创 2013-09-03 15:34:00 · 681 阅读 · 0 评论