题目告诉你一些距离(两个城市之间)要求每个城市各经过一次,最后回到原地,求出最短需要的距离。思想转换:每个点的入度出度均为1,相当于左边n个城市,右边n个城市,求最优匹配,由最优匹配的性质得,每个点都会在匹配中。相当于一个点出现两次(表达的不太好),即一次入度,一次出度。所以最短的路程便转换为了最优匹配问题。View Code #include<stdio.h>#include<string.h>#include<stdlib.h>#include<algorithm>using namespace std;#define MIN(a,b) a& Read More
posted @ 2011-08-31 17:35 Because Of You Views(428) Comments(0) Diggs(0) Edit
View Code #include<stdio.h>#include<string.h>#include<stdlib.h>#include<algorithm>using namespace std;#define MIN(a,b) a<b?a:b#define INF 99999999#define MAX 5005int n,match[MAX];bool sx[MAX],sy[MAX];int lx[MAX],ly[MAX],map[MAX][MAX];char str[105][105];bool path(int u){ sx Read More
posted @ 2011-08-31 14:33 Because Of You Views(272) Comments(0) Diggs(0) Edit
讲一讲二分图的知识吧,自己以后也方便复习,(*^__^*) 嘻嘻……基本的一些定理的证明就不再讲了,书上、网上一大堆。。。。学习二分图,首先要知道什么是匹配,其次是最大匹配。最大匹配是关键,是很多情况的原型。学会最大匹配后,就是各种变形已经很多人总结好了,懒得写(*^__^*) 嘻嘻……如下:二分图是这样一个图,它的顶点可以分类两个集合X和Y,所有的边关联在两个顶点中,恰好一个属于集合X,另一个属于集合Y。最大匹配: 图中包含边数最多的匹配称为图的最大匹配。完美匹配:如果所有点都在匹配边上,称这个最大匹配是完美匹配。完全匹配:设X、Y是二分图G的两个部分。若X中每个结点都关联于匹配M中的一条边 Read More
posted @ 2011-08-31 13:46 Because Of You Views(880) Comments(0) Diggs(0) Edit