huangriq

导航

2012年5月4日 #

poj 2195(最小费用流)

摘要: 题意:一个矩阵中不同位置给出n个人,和n个房子,求解n个人分别回到n个房子的最小时间花费。思路:最大权匹配,可用最小费用流,km算法求解。最小费用流算法:View Code 1 #include<iostream> 2 #include<stdio.h> 3 #include<string.h> 4 #include<algorithm> 5 using namespace std; 6 #define inf 0x3f3f3f3f 7 #define N 100010 8 #define M N*10 9 struct edge{ 10 int 阅读全文

posted @ 2012-05-04 14:26 huangriq 阅读(376) 评论(0) 推荐(0)

poj 3041( 最大匹配)

摘要: 题意:给出一个矩阵和一些矩阵上的点,选择最少的行或列把给出的点覆盖。思路:把行看成一个点集,列看成另一个点集,每个给出点构造一条这两个点集中的一条边。我们的问题就变成了选择最少的点把所有的边覆盖。很显然这就是一个最大独立点集问题,可用最大匹配求解。匈牙利匹配算法:View Code 1 #include<iostream> 2 #include<stdio.h> 3 #include<string.h> 4 using namespace std; 5 #define N 10010 6 #define M 20020 7 struct edge{ 8 in 阅读全文

posted @ 2012-05-04 14:19 huangriq 阅读(271) 评论(0) 推荐(0)