二分匹配
Ac-try
这个作者很懒,什么都没留下…
展开
-
匈牙利算法
原文地址:https://www.byvoid.com/blog/hungary/这是一种用增广路求二分图最大匹配的算法。它由匈牙利数学家Edmonds于1965年提出,因而得名。 定义 未盖点:设Vi是图G的一个顶点,如果Vi 不与任意一条属于匹配M的边相关联,就称Vi 是一个未盖点。交错路:设P是图G的一条路,如果P的任意两条相邻的边一定是一条属于M而另一条不属于M,就转载 2015-01-10 13:47:06 · 312 阅读 · 0 评论 -
POJ 1274 -- The Perfect Stall (匈牙利)
题目大意:每头牛都有固定产奶想要的牛栏,给出N头牛及M个牛栏,及每个牛想要的牛奶数量和想要的牛栏的编号,求能产生牛奶的最大数量。思路分析:求最大牛 牛栏的最大匹配数,直接用匈牙利求解就好。代码实现:#include#includeint top,ans,by[210],visit[210];struct Edge{ int v; Edge *next;}*hea原创 2015-01-11 23:20:47 · 329 阅读 · 0 评论 -
poj 2536 -- Gopher II (匈牙利)
题意:一块田地上有n只地鼠和m个地鼠洞,并且知道地鼠的奔跑速度v。如果地鼠的天敌出现,地鼠不能在t时间内跑入一个洞内,就会有危险。每个洞只能住一只地鼠,给出每个洞的坐标和每只地鼠的坐标,问你天敌出现的时候,最少有几只地鼠会有危险。思路:基础二分图最大匹配,匈牙利算法实现,而我们建立的联系就是,如果这个地鼠和洞的距离小于地鼠的速度乘题里给的时间,那这个地鼠就和这个洞建立联系。代码实现原创 2015-01-11 23:05:20 · 403 阅读 · 0 评论 -
HDU 1150 -- Machine Schedule (最小点覆盖)
题目大意:有A,B两个机器及k个需要运行的任务。每台机器有n种工作模式,从0到n-1,初始状态为0状态,每个任务可以在两个机器额不同模式下工作,(i,x,y)表示工作i可以在机器A的x模式下运行,也可以在B的y模式下运行,每台机器上的任务可以按照任意顺序执行,但是每台机器每转换一次模式需要重启一次。给出k个这样的关系,为每个人物安排一台机器并合理的安排顺序,是得机器重启次数尽量少。思路分析:给原创 2015-01-11 22:56:19 · 395 阅读 · 0 评论 -
HDU 2063 -- 过山车(匈牙利)
题目大意:男生女生一起做过山车,要求必须一个男生和一个女生一起做过山车,现在给出了女生分别想和那几个男生一起做过山车,问能做上过山车的最大组合数。思路分析:求建立二分图中的最大匹配数,用匈牙利算法(一个模板题)。代码实现:#include#includeint top,ans,by[550],visit[550];struct Edge{ int v; Edge原创 2015-01-11 22:11:16 · 317 阅读 · 0 评论 -
poj 3692 -- Kindergarten(最大团,匈牙利)
题目大意:一个幼儿园,有G个女生,B个男孩男生,女生和女生之间相互认识,男生和男生之间相互认识,同时又M组男生和女生认识,现在老师要跳出一部分小朋友做游戏,游戏要求参加游戏的小朋友都相互认识,问老师最多能挑选出多少小朋友做游戏。思路分析:女生之间都认识,男生之间都认识,并有M组男生女生之间也认识,这道题也就是求最多有多少人之间相互认识,也就是最多有多少点和点能建立联系,也就是最大团问题。(最大原创 2015-01-11 21:51:21 · 396 阅读 · 0 评论