摘要:
题目链接:http://poj.org/problem?id=2195 最佳完美匹配裸题,直接用KM算法求就可以了。 KM算法就是维护每个点的可行顶标,即始终有 l(x)+l(y)>=w(x,y)(求最大)、l(x)+l(y)<=w(x,y)(求最小),然后依次加边,求最大匹配,直到匹配是完美匹配即可。 1 //STATUS:G++_AC_0MS_764KB 2 #include<stdio.h> 3 #include<stdlib.h> 4 #include<string.h> 5 #include<math.h> 6 #inclu 阅读全文
摘要:
题目链接:http://poj.org/problem?id=2226 这题是POJ 3041的升级版本,很有意思,要求木板不能盖在草地上。那么这里我们可以把每行一连续‘*’的看做行,把每列连续的‘*’看做列,那么在建模就是POJ 3041的原题了。 看一个例子: 3 3 X集合 Y集合 .*. 010 020 *** ———> 222 123 .*. 033 020 那么再根据X,Y集合连边即可。 要覆盖图中所有的点,即二分... 阅读全文