摘要: 这题最重要的就是设置一个超级原点,即他的城镇,然后连接超级原点到相邻的城市的距离为0 ,接下来就是套用模板了,哦,对了,要优化一下,不然貌似数据蛮大的,View Code 1 #include"stdio.h" 2 #include"math.h" 3 #include"string.h" 4 #define maxn 0x7ffffff 5 6 int map[1001][1001],s,t,n,m; 7 int alls; 8 int dist[1001]; 9 10 void dij()11 {12 int visit[1001 阅读全文
posted @ 2011-05-03 21:55 xiaoln 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 昨天看欧拉回路相关的,以前见过最难也就是混合图欧拉回路,感觉也还可以接受。但看到有向图版和无向图版的中国邮路问题,才发现欧拉回路其实也是很难的一样东西。中国邮路问题我想很多人都听说过,但其算法应该很少人知道吧(那些算法书上说中国邮路问题有多项式算法,但却只字不提是什么算法)。现在找到相关的资料了,但核心问题解法还是没有提出来。 先说说无向图版的中国邮路问题吧,论文中说的方法是度数为奇数的点抽出来构出一个完全图,边权为两点在原图的最短路径。然后问题的关键就是求这个完全图的最小权值匹配了。 有向图的解法就相对明朗了,有点像混合图欧拉回路那样。本质都是要满足每个点的出度等于入度。那样就和网络流的性质 阅读全文
posted @ 2011-04-28 05:32 xiaoln 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 第一次写欧拉路,有点郁闷,不过知道了,欧拉的判定是否可以用并查集哦,这题是纯模板的#include"stdio.h"#include"math.h"#include"string.h"#include"stdlib.h"typedef struct node{ int from,to,vis; }Node;Node map[1001];char str[1001][21],str1[1001][21];int po[27];int m,n,e;int cmp(const void *a,const void *b) 阅读全文
posted @ 2011-04-28 00:50 xiaoln 阅读(648) 评论(0) 推荐(1) 编辑
摘要: 这题要求的是最短路径的搜索,还有一个就是要枚举,因为你虽然用最短路去搜,但是不知到要在哪里终止,并且不知到他们的step是不是已经超过了,所以需要枚举,创建时要用到的就是用0来作为起始的0点,(也是看网上的),#include"stdio.h"#include"math.h"#define maxn 10000000int map[101][101],level[101];int step,n,ans;void dij(){ int mark[101],dist[101],i,j,k,min,start; ans = maxn; for(k=0;k< 阅读全文
posted @ 2011-04-24 03:04 xiaoln 阅读(324) 评论(0) 推荐(0) 编辑
摘要: DescriptionOnce upon a time there was a greedy King who ordered his chief Architect to build a wall around the King's castle. The King was so greedy, that he would not listen to his Architect's proposals to build a beautiful brick wall with a perfect shape and nice tall towers. Instead, he o 阅读全文
posted @ 2011-04-20 01:50 xiaoln 阅读(381) 评论(0) 推荐(0) 编辑