2012年7月10日
摘要: 这个题于找最短路劲相识但是,又有点不同,其想法跟最短路劲的想法,要找到最大的,即要将dis[i]和hash[i]全部处理为0,寻找更新时要找最大值,然后其他的都相识,短路劲dis[i]=map[起始端][i],hash[i]=0,hash[起始端]=1;代码:#include<iostream>using namespace std;double map[1002][1002];double dis[1002];int n,q,hash[1002];int se[1002][3]; void djs(int v,int v1){int i,j,index;double mi; fo 阅读全文
posted @ 2012-07-10 23:54 xinmenghuairi 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 利用Floyd算法:设 g[i][j] 为 i 与 j 间边长, d[i][j] 为 i 与 j 间临时最短路。for(k=1;k<=n;k++){ for(i=1;i<k;i++) for(j=i+1;j<k;j++) MIN=min(MIN,dist[i][j]+c[i][k]+c[k][j]); for(i=1;i<=n;i++) for(j=1;j<=n;j++) dist[i][j]=min(dist[i][j],dist[i][k]+dist[k][j]);}算法解释:根据Floyd算法原理,在最外层循环到k时,在d[i][j]的路径里所有节点的编号是 阅读全文
posted @ 2012-07-10 12:02 xinmenghuairi 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 第一次用dijkstr算法把每个起点找到最短的时间,然后进行比较,但是就是过不了。网上看的先以0为起点然后到原先起点的那个点的时间设为0,再用dijkstr算法就能一次性找出最短时间代码:#include<iostream>#include<string.h>using namespace std;#define Max 999999999int map[1005][1005];int dis[1005],hash[1005];int star,en[1005];int t,s,d;int djs(){ int i,j; int index,minn,sc; memse 阅读全文
posted @ 2012-07-10 11:59 xinmenghuairi 阅读(364) 评论(0) 推荐(0) 编辑