码迷,mamicode.com
首页 > 其他好文 > 详细

dijk

时间:2015-05-25 14:21:33      阅读:552      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!