
二分图匹配
MashiroSky
这个作者很懒,什么都没留下…
展开
-
【bzoj1191】 HNOI2006—超级英雄Hero
http://www.lydsy.com/JudgeOnline/problem.php?id=1191 (题目链接)题意:有m个问题,n个锦囊妙计,每个锦囊妙计可以解决一个问题,每个问题有两个锦囊妙计可以解决,求最大可以解决几个问题。Solution 裸的二分图匹配。将m个问题看成一组节点,n个锦囊妙计看成一组节点,求它们的最大匹配。注意当一个问题回答失败后游戏会直接结束,find返回0时b原创 2016-08-13 15:17:27 · 507 阅读 · 0 评论 -
【poj3020】 Antenna Placement
http://poj.org/problem?id=3020 (题目链接)题意:给出一个矩阵,矩阵中只有‘*’和‘o’两种字符,每个‘*’可以向它上下左右四个方位上同为‘*’的点连一条边,求最少需要连多少条边才能使所有‘*’被至少一条边连接。Solution 二分图最小路径覆盖。将每个‘*’拆成两个节点构造一个二分图,然后连边,跑匈牙利就可以了,最后最小路径覆盖的答案就是所有节点的数量-最大匹原创 2016-08-13 15:26:23 · 409 阅读 · 0 评论 -
【poj1274】 The Perfect Stall
http://poj.org/problem?id=1274 (题目链接)题意:懒得写了Solution 二分图匹配裸题。注意清空数组。代码:// poj3020#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<cmath>#define原创 2016-08-13 15:59:38 · 369 阅读 · 0 评论 -
【poj2724】 Purifying Machine
http://poj.org/problem?id=2724 (题目链接)题意:Mike有一个机器可以帮助他清理奶酪,每个奶酪由一个n位二进制数表示,机器上一共有n个按钮,每个按钮有1,0,*,其中‘*’表示既可以是1也可以是0。每次操作都可以命令机器生成一个二进制数。因此机器可以表示出一个或两个二进制数,这样就可以清理奶酪了。现在问要清理m块n位的二进制奶酪需要操作多少次。Solution原创 2016-08-14 16:54:58 · 517 阅读 · 0 评论 -
【poj2226】 Muddy Fields
http://poj.org/problem?id=2226 (题目链接)题意:给出一个只包含‘.’和‘*’的矩阵,用任意长度的宽为1的木板覆盖所有的‘*’而不覆盖‘.’,木板必须跟矩形的长或宽平行。问最少需要多少块木板。Solution 这道题的构图非常巧妙,堪称经典构图。对于每一个‘*’,要么就是被横的木板覆盖,要么就是被竖的木板覆盖,而木板的长度一定都是取到最长(因为题目没有说木板不能重原创 2016-08-14 20:54:15 · 491 阅读 · 0 评论 -
【bzoj1562】 NOI2009—变换序列
http://www.lydsy.com/JudgeOnline/problem.php?id=1562 (题目链接)题意:给出一个序列(0~n-1),这个序列经过某个变换会成为另外一个序列,但是其中的元素不会改变,给出初始序列与变换后的序列每一位上的“距离”,求字典序最小的变换序列。Solution 每个位置上只有2种情况,很明显的二分图匹配。因为要求字典序最小,我们考虑匈牙利算法的运行方式原创 2016-09-23 15:42:02 · 654 阅读 · 0 评论 -
【codevs1409】 拦截导弹 2
http://codevs.cn/problem/1409/ (题目链接)题意:给出n个三维的导弹,每次拦截只能打x,y,z严格上升的若干个导弹,求最多能一次拦截下多少个导弹,以及最少拦截几次将所有导弹全部拦截。Solution 第一问直接排序后n²的dp即可。 第二问我们考虑二分图匹配,连边后转换模型成为最小路径覆盖。代码:// codevs1409#include<algorith原创 2016-09-23 17:09:38 · 537 阅读 · 0 评论