上一页 1 2 3 4 5 6 7 8 ··· 17 下一页
摘要: 以下内容转载自此位牛人的博客: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) 编辑
摘要: //题目类型:二分匹配-最小路径覆盖 //建图:如果后一个垃圾的位置可以通过前一个垃圾的位置可达,则建立一条边 #include <iostream>//#include <conio.h>using namespace std;#define arraysize 25typedef struct garbage{ int row; int col;}garbage;gar... 阅读全文
posted @ 2010-06-02 18:34 北海小龙 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 题目类型:二分图-最大边匹配的变形 解题思路:(1)numcount(坏的cheese数)- maxmatch(此处是指被匹配的所有顶点)+maxmatch/2;其中numcount-maxmatch是没有匹配的顶点,即必须采取的操作而maxmatch/2则是可以通过'*'来实现的操作。(2)建边:当两个整数只有一位不相同时连接一条边 (3)重边的判断:借助数组refinal实现 建边的时候有一个... 阅读全文
posted @ 2010-06-01 20:49 北海小龙 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 以下内容转自http://imlazy.ycool.com/post.1603708.html什么是二分图,什么是二分图的最大匹配,这些定义我就不讲了,网上随便都找得到。二分图的最大匹配有两种求法,第一种是最大流(我在此假设读者已有网络流的知识);第二种就是我现在要讲的匈牙利算法。这个算法说白了就是最大流的算法,但是它跟据二分图匹配这个问题的特点,把最大流算法做了简化,提高了效率。匈牙利算法其实很... 阅读全文
posted @ 2010-05-31 20:51 北海小龙 阅读(439) 评论(2) 推荐(1) 编辑
摘要: #define parray 101#define narray 301int map[parray][narray]; //存储邻接矩阵 int match[narray]; //存储匹配 bool final[narray]; //用于标记DFS int p,n; //p代表二分图左半顶点个数,n代表二分图右半顶点个数 //利用DFS算法找增广路路径 bool DFS(int p) { int... 阅读全文
posted @ 2010-05-31 20:47 北海小龙 阅读(254) 评论(0) 推荐(0) 编辑
摘要: void SPFA(int src){ queue<int> myqueue; int i,j; memset(final,0,sizeof(final)); memset(pre,-1,sizeof(pre)); myqueue.push(src); for(i=0;i<=ncount;++i) //SPFA算法与Dij不同,SPFA初始化时将除源点以外所有点的最短距离初始化无... 阅读全文
posted @ 2010-05-30 22:14 北海小龙 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 步骤0:初始可行0流步骤1:如果不存在最小费用流,则计算结束,已经找到最小费用流;否则,用最短路算法(由于存在负圈,只能采用SPFA或者Bellman-Ford算法)在残留网络中找到源点到终点的最小费用可增广路,转步骤2。步骤2:沿找到的最小费用可增广路增流,并转步骤1 。int maxData = 10000000;bool final[105]; //SPFA算法中标识结点是否在队列中 int... 阅读全文
posted @ 2010-05-30 22:08 北海小龙 阅读(626) 评论(0) 推荐(0) 编辑
摘要: //类型:最小费用流问题(此题的关键在于建图)算法:最小费用路算法(见《算法分析与设计》P312页) 构图:由于有K种商品,但是每一种商品的图其实是独立的。所以,我们可以构K次二分图。每次,新增源点src和汇点des,src向提供者连弧,容量为给定值,费用为0;提供者向购买者连弧,容量应为给定值(如果容量为maxlongint则会超时),费用为给定值;购买者向des连弧,容量为给定值,费用为0。显... 阅读全文
posted @ 2010-05-30 21:54 北海小龙 阅读(512) 评论(0) 推荐(1) 编辑
摘要: const int maxn=201; const int maxm=201;struct node{ int x,y,f,op,next; //x起点,y终点,f权值,next是以x为起点的上一条边在g中的位置,op是反向边在g中的下标位置 }g[maxm*2];//first[]存储的是以x为起点的最后一条边的在数组g中的下标 //sumd[]用于记录表示标号为i的顶点数有多少个,用于间隙优化... 阅读全文
posted @ 2010-05-29 21:47 北海小龙 阅读(913) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 17 下一页