首页 > 其他 > 详细

dijk

时间:2015-05-25 14:19:57      阅读:242      评论:0      收藏:0      [点我收藏+]
//最短路径
/*
技术分享
技术分享 Dijkstra(迪杰斯特拉)算法的核心思想是贪心策略+动态规划 http://www.programgo.com/article/4721147659/
Dijkstra算法能得出最短路径的最优解,但是效率低 */ #include <iostream> using namespace std; int main() { int n,m,i,j,k,l,r; cin>>n>>m; int**s=new int*[n];//确定的是行数 for(int i=0;i<n;i++) { s[i]=new int[n];//确定的是列数 } //初始化,将自己与自己的距离置为0,任意两点距离置为99999 for(i=0;i<n;i++){ for(j=0;j<n;j++) { if(i==j) s[i][j]=0; s[i][j]=99999; } } //Input: for(k=0;k<m;k++) { cin>>i>>j; cin>>s[i][j]; } /*dijkstra: 主要特点是以起始点为中心向未碰到的点扩展,直到扩展到终点为止。 */ for (k=0; k<n; k++) for (i=0; i<n; i++) for (j=0; j<n; j++) if (s[i][k] + s[k][j] < s[i][j]) s[i][j] = s[i][k] + s[k][j]; cin>>l>>r; cout<<s[l][r]; return 0; }

 

dijk

原文:http://www.cnblogs.com/tianjintou/p/4527676.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!