随笔分类 -  匹配问题

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82834#problem/C
摘要:题意:有一些箱子,大箱子可以套小箱子,但是必须h>h,w>w,l>l,求出来最外面能剩下几个箱子无法被嵌套。分析:思考每个箱子都只会被别的箱子套一次,所以构成一二分匹配模型,只需求出来最大的匹配,因为没有匹配的都是无法被嵌套的,已经匹配的都可以找到嵌套它的箱子,结果就是箱子总数-最大匹配。代码如下:... 阅读全文
posted @ 2015-08-14 17:14 无忧望月 阅读(201) 评论(0) 推荐(0)
摘要:分析:只需要用二分找一个区间,然后不断枚举这个区间是否可以达到最大匹配,一直二分到答案为止。代码:====================================================================================#include#includec... 阅读全文
posted @ 2015-08-14 17:00 无忧望月 阅读(178) 评论(0) 推荐(0)
摘要:题目大意:在一个网格里面有n个小男人和n个房子,现在想让每个小男人都有一个房子住,不过每个人移动一下都需要花费¥1,现在求出来最小的总花费。ps:可以认为网格的每个点都是很大的广场并且容纳所有的人,人可以走在有房子的点但是不进入房子。分析:人-房子,很完美的带全都最小值匹配啊,人到一个房子的花费就是... 阅读全文
posted @ 2015-08-08 15:45 无忧望月 阅读(228) 评论(1) 推荐(0)
摘要:题意:有N个王子M个公主,王子喜欢一些公主,而且只能是王子喜欢的人,他们才可以结婚,现在让他们尽可能多的结婚的前提下找出来每个王子都可以和谁结婚。分析:先求出来他们的最大匹配,因为给的数据未必是完备匹配,所以需要添加一些点使他们成为完备匹配才能求出来的环是完整的,比如第二组数据:1 2 2 1 2如... 阅读全文
posted @ 2015-08-07 08:11 无忧望月 阅读(296) 评论(0) 推荐(0)
摘要:题意:国王有N个儿子,每个儿子都有很多喜欢的姑娘,官员为每个王子都找了一个姑娘让他们结婚,不过国王不满意,他想知道他的每个儿子都可以和那个姑娘结婚(前提他的儿子必须喜欢那个姑娘)分析:因为最下面一行已经给出来每个王子可以结婚的对象了,所以就不必在去求完备匹配了,直接加入反边求出来环就行了,不过注意环... 阅读全文
posted @ 2015-08-06 19:31 无忧望月 阅读(247) 评论(0) 推荐(0)
摘要:题意:一个王国有N个城市,M条路,都是有向的,现在可以去旅游,不过走的路只能是环(至少也需要有两个城市),他们保证这些城市之间的路径都是有环构成的,现在至少需要走多少路。分析:因为是有向图所以,而且走的是环所以每个城市都会进入一次并且出去一次,构成二分图,并且是完备匹配(完备匹配后肯定都是环了),现... 阅读全文
posted @ 2015-08-06 09:10 无忧望月 阅读(212) 评论(0) 推荐(0)
摘要:分析:这是一个KM的模板题,也就不多说了,KM最复杂的情况都能过,下面是没有优化过的代码:************************************************************#include#include#includeusingnamespacestd;con... 阅读全文
posted @ 2015-08-06 08:00 无忧望月 阅读(163) 评论(0) 推荐(0)
摘要:题意:有N头奶牛,M个牛棚,每个牛棚都有一个容量,并且每个牛对牛棚都有一个好感度,现在重新分配牛棚,并且使好感觉最大的和最小的差值最小。分析:好感度貌似不多,看起来可以枚举一下的样子,先试一下把注意:枚举确实是没问题,不过那个输入需要注意一下(错了好几次才发现),比如说第二行2 3 1 4,意思就是... 阅读全文
posted @ 2015-08-05 20:02 无忧望月 阅读(204) 评论(0) 推荐(0)
摘要:题意:有K太挤奶机,C头奶牛,每个挤奶机每天只能为M头奶牛服务,下面给的K+C的矩阵,是形容相互之间的距离,求出来走最远的那头奶牛要走多远分析:应该先使用floyd求出来点之间的最短路??(不晓得给的图是不是最短路的),二分出来最短的路径。先做做看吧。注意:分析的没有错误,确实是这么做的,矩阵的前K... 阅读全文
posted @ 2015-08-05 16:34 无忧望月 阅读(180) 评论(0) 推荐(0)
摘要:题意:某个人通讯录有很多人,现在他想把这个人分组,给的数据是可以把这个人分在那些组里面,现在他想知道分组后,人最多的那个组至少有多少人。分析:因为没有给组限制有多少人,可以使用二分求出来最小的那个,感觉还是挺暴力的.....不过时间确实很少 500多ms***********************... 阅读全文
posted @ 2015-08-05 10:23 无忧望月 阅读(308) 评论(0) 推荐(0)
摘要:题意:有P个孩子,有的孩子喜欢猫不喜欢狗,有的喜欢狗不喜欢猫(喜欢的和不喜欢的一定是相相对立的动物),动物园有N只猫,M只狗,每个孩子都有喜欢的猫讨厌的狗(或者喜欢的狗讨厌的猫),现在动物园要送走一批猫或者狗,如果某个孩子喜欢的动物留下并且讨厌的动物离开,那么这个孩子就会很开心,现在求出来最多能让多... 阅读全文
posted @ 2015-08-04 09:22 无忧望月 阅读(251) 评论(0) 推荐(0)
摘要:题意:给一个有向无环图,求出来最小路径覆盖,注意一个点可能会被多条路径重复分析:因为有可能多条路径走一个点,可又能会造成匹配的不完全,所以先进行一次闭包传递(floyd),然后再用二分匹配的方法求出来最大匹配即可。*******************************************... 阅读全文
posted @ 2015-08-03 19:39 无忧望月 阅读(261) 评论(0) 推荐(0)
摘要:题意:给一个有向无环图,求出来最少需要几个士兵可以遍历所有的边。分析:有向无环图的最小边覆盖 = 点数 - 最大匹配数为什么是这样的公式??可以思考一下,如果这N个点之间没有边,是不是应该有N个士兵去查看,但是如果增加一条边就应该减去这条边,以此类推,公式就比较容易明白了。*************... 阅读全文
posted @ 2015-08-03 18:14 无忧望月 阅读(168) 评论(0) 推荐(0)
摘要:题意:用最小的点来覆盖全部的边,因为二分图里面最大的匹配就是最小覆盖,所以直接匹配一下即可***********************************************************************#include#include#includeusingnames... 阅读全文
posted @ 2015-08-03 16:57 无忧望月 阅读(216) 评论(0) 推荐(0)
摘要:题意:每个 ‘*’都需要一个1*2的东西覆盖,问最少需要多少个1*2的东西来覆盖这些‘*’分析:只需要求出来最多有多少个完全覆盖的,然后加上那些不能被完全覆盖的点即可。。把G题的代码随便修改了一下就过了.....********************************************... 阅读全文
posted @ 2015-08-03 15:43 无忧望月 阅读(159) 评论(0) 推荐(0)
摘要:题意:在大海里有一些石油 ‘#’表示石油, ‘.’表示水,有个人有一个工具可以回收这些石油,不过只能回收1*2大小的石油块,里面不能含有海水,要不就没办法使用了,求出来最多能回收多少块石油分析:先把数据处理一下,给每一点石油都进行编号,然后查找一下四周联合是否能组成石油块,能的话就连接,因为一点有可... 阅读全文
posted @ 2015-08-03 15:17 无忧望月 阅读(175) 评论(0) 推荐(0)
摘要:题意:给一些人和一些伞的坐标,然后每个人都有一定的速度,还有多少时间就会下雨,问最多能有多少人可以拿到伞。分析:题意很明确,可以用每个人和伞判断一下是否能够达到,如果能就建立一个联系。不过这道题的数据还是挺大的,第一次使用的匈牙利算法果断的TLE了,然后就百度了一下发现有一个Hopcroft-Kar... 阅读全文
posted @ 2015-08-03 14:02 无忧望月 阅读(229) 评论(0) 推荐(0)
摘要:题意:如果可以交换行列,问主对角线能不能全为1分析:要想主对角线全为1很明显要有N个行列不想同的点就行了,可以用二分图匹配计算出来多能有几个。如果小与N就不能。输出要是对的就行,不必和答案一样******************************************************... 阅读全文
posted @ 2015-08-02 13:15 无忧望月 阅读(229) 评论(0) 推荐(0)
摘要:分析:先求出来最大匹配数,然后用匹配的点一个一个去除看看能否达到最大匹配,能的话就是关键点(很暴力啊),不过竟然才31ms*****************************************************************#include#include#include... 阅读全文
posted @ 2015-08-01 19:04 无忧望月 阅读(194) 评论(0) 推荐(0)
摘要:题意:现在有一些学生给你一下朋友关系(不遵守朋友的朋友也是朋友),先确认能不能把这些人分成两组(组内的人要相互不认识),不能分的话输出No(小写的‘o’ - -,写成了大写的WA一次),能分的话,在求出来一对朋友可以住一个房间,最多可以开多少双人房(- -)分析:使用并查集分组,如果出现矛盾就是不能... 阅读全文
posted @ 2015-08-01 17:33 无忧望月 阅读(279) 评论(0) 推荐(0)

levels of contents