摘要: int maxData=10000000;int graph[arraysize][arraysize];int d[arraysize];int pre[arraysize]; //存储节点前驱 bool final[arraysize];int t,n;void Dij(int src){ int i,j; int minData; int v; memset(final,0,sizeof(f... 阅读全文
posted @ 2010-06-03 20:56 北海小龙 阅读(264) 评论(0) 推荐(0) 编辑
摘要: //题目类型:二分匹配-最小权完美匹配//算法实现:可以采用KM算法或者最小费用最大流实现//KM算法实现 #include <iostream>#include <string>#include <math.h>//#include <conio.h>using namespace std;#define arraysize 105int maxD... 阅读全文
posted @ 2010-06-03 15:36 北海小龙 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 以下内容转载自此位牛人的博客:http://www.byvoid.com/blog/match-km/有关KM算法的基本内容可参考百度百科或者tianyi的讲解.[二分图带权匹配与最佳匹配]什么是二分图的带权匹配?二分图的带权匹配就是求出一个匹配集合,使得集合中边的权值之和最大或最小。而二分图的最佳匹配则一定为完备匹配,在此基础上,才要求匹配的边权值之和最大或最小。二分图的带权匹配与最佳匹配不等价... 阅读全文
posted @ 2010-06-03 15:27 北海小龙 阅读(614) 评论(0) 推荐(0) 编辑
摘要: int maxData = 1000000000; int w[arraysize][arraysize]; //权值 int match[arraysize]; //保存匹配信息,其中i为Y中的顶点标号,match[i]为X中顶点标号 int lx[arraysize],ly[arraysize],slack[arraysize]; //lx[]为左顶点的顶标,ly[]为有顶点的顶标,slack... 阅读全文
posted @ 2010-06-03 15:20 北海小龙 阅读(457) 评论(0) 推荐(0) 编辑