2011年7月18日
摘要: #include<stdio.h>#include<string.h>#include<stdlib.h>double dis[1010],map[1010][1010];int hash[1010];int n,a,b;void dijkstra(){ for(int i=1;i<=n;i++) { hash[i]=0; dis[i]=0; }//前面吧这部分内容放到了主函数里面,结果不对。 dis[a]=1; for(int i=1;i<=n;i++) { double max=-1; int pos; for(int j=1;j<=n 阅读全文
posted @ 2011-07-18 21:51 枫叶飘泪 阅读(184) 评论(0) 推荐(0)
摘要: 这个题目是套用dijstra()模板,但又拐了一个弯,本题每条路径上都有两个权值,本题不必考虑花费,直接球最短路,只是在更新顶点值的时候有一个特殊处理,求得花费。#include<stdio.h>#include<string.h>#include<stdlib.h>int n,m,s,t;int inf=0x7fffffff;int hash[1010],dis[1010],map[1010][1010],pay[1010][1010],des[1010];void dijstra(){ dis[s]=0; des[s]=0; for(int i=1;i& 阅读全文
posted @ 2011-07-18 20:10 枫叶飘泪 阅读(394) 评论(0) 推荐(0)
摘要: 此题依旧是套kruskal()的模板,只是条件有所隐含,此处要自己找出结构体val中的三个参量,并且注意到当距离d可以对应于v;#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>struct zb{ int x,y;}z[110];struct val{ int a,b; double v;}e[10000];int set[110];int c;int m;double sum;int cmp(const void *a,const void *b){ re 阅读全文
posted @ 2011-07-18 16:59 枫叶飘泪 阅读(189) 评论(0) 推荐(0)