摘要:
差分约束:http://972169909-qq-com.iteye.com/blog/1185527KM算法:http://972169909-qq-com.iteye.com/blog/1184514最短路:http://972169909-qq-com.iteye.com/blog/1156071匹配:http://hi.baidu.com/_lt_zyc/item/0414aee9030341e7e1a5d4fe树状数组:http://hi.baidu.com/lilu03555/blog/item/4118f04429739580b3b7dc74.html矩阵:http://www. 阅读全文
摘要:
http://poj.org/problem?id=2195在一个n*m的方格里有nx人(m)和ny个房子(H),(nx = ny)人每次可以向四周移动单位距离,花费1¥,求最小花费是每个人都能进入一个房间。最小费用最大流可以做http://www.cnblogs.com/E-star/archive/2012/06/28/2567079.html这里是个二分图求最小权匹配问题,可以用KM算法求,只要把w[i][j] 化成负数,太用木板求最大的负数,然后输出-KM()就得到最小的整数了。#include <cstdio>#include <cstring>#includ 阅读全文
摘要:
两个不错的介绍KM算法的文章:1:http://www.cppblog.com/MatoNo1/archive/2011/07/23/151724.aspx2: KM算法是通过给每个顶点一个标号(叫做顶标)来把求最大权匹配的问题转化为求完备匹配的问题的。设顶点Xi的顶标为A[i],顶点Yi的顶标为B[i],顶点Xi与Yj之间的边权为w[i,j]。在算法执行过程中的任一时刻,对于任一条边(i,j),A[i]+B[j]>=w[i,j]始终成立。KM算法的正确性基于以下定理: 若由二分图中所有满足A[i]+B[j]=w[i,j]的边(i,j)构成的子图(称做相等子图)有完备匹配,那么这个完备匹 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2255O(n^4)模板#include <cstdio>#include <cstring>#include <iostream>#define maxn 301using namespace std;const int inf = 99999999;int w[maxn][maxn],link[maxn];int lx[maxn],ly[maxn];bool vtx[maxn],vty[maxn];int nx,ny;bool dfs(int i){ int j; vtx 阅读全文
摘要:
http://poj.org/problem?id=3308题意:火星人要和地球人PK,地球人间谍搞到了一份情报:火星人要搞伞兵,登陆在地球一个row*col的地图上,而且知道伞兵的数量和每个伞兵要降落的格子。为了消灭敌人,可以在某一行或者某一列安置激光枪。每个激光枪可以瞬间消灭这一行(或者列)的敌人。安装消灭第i行的激光枪消费是ri。安装消灭第j行的激光枪消费是ci。现在总部要你花费最小的费用,安装好足够的激光枪去消灭所有的火星人,问最小的花费是多少。这里花费的定义有点不同:是每个激光器消费的乘积。思路:最小割_最大流,把伞兵看成边,行列看成节点,转化为了带权二分图最小点覆盖。加入超级源点和 阅读全文