最短路径
Posted 任我主宰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最短路径相关的知识,希望对你有一定的参考价值。
参考博客:https://blog.csdn.net/tianhaobing/article/details/65443049
1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int A[100][100]; 5 int flag[10]={0}; 6 int dis[10]; 7 int point; 8 int edge; 9 int inf = 99999999; 10 cin>>point>>edge; 11 for(int i=1;i<=point;i++){ 12 for(int j=1;j<=point;j++){ 13 if(i!=j) A[i][j] = inf; 14 else A[i][i] = 0; 15 } 16 } 17 18 for(int i=1;i<=edge;i++){ 19 int t1,b,c; 20 cin>>t1>>b>>c; 21 A[t1][b] = c; 22 //A[b][a] = c; 23 } 24 25 26 for(int i=1;i<=point;i++){ 27 dis[i] = A[1][i]; 28 } 29 30 flag[1] = 1; 31 32 int index ; 33 34 for(int i=1;i<=point;i++){ 35 int min = inf; 36 for(int j=1;j<=point;j++){ 37 if(dis[j]<min && flag[j]==0){ 38 min = dis[j]; 39 index = j; 40 } 41 } 42 43 flag[index] = 1; 44 45 for(int k=1;k<=point;k++){ 46 if(A[index][k] < inf){ 47 if(dis[k] > dis[index] + A[index][k] ){ 48 dis[k] = dis[index] + A[index][k]; 49 } 50 } 51 } 52 53 } 54 55 for(int i=1;i<=point;i++){ 56 cout<<"The distance form point 1 to point "<<i<<" is "<<dis[i]<<endl; 57 } 58 59 60 61 62 63 64 }
以上是关于最短路径的主要内容,如果未能解决你的问题,请参考以下文章