1
已解决
陆麟瑞
资深天翼
资深天翼
http://judge.codingtang.com/problem/1275/
#include <bits/stdc++.h> using namespace std; int d[900][900]; int main() { int n,a; cin>>n>>a; for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { string c; int x; cin>>c; stringstream ss; ss << c; ss >> x; ss.clear(); if(x!=0||x==0&&c=="0") { d[i][j]=x; } else { d[i][j]=1000000; } } } for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) for(int k=1; k<=n; k++) if(i!=j&&i!=k&&j!=k&&d[i][j]>d[i][k]+d[k][j]) { d[i][j]=d[i][k]+d[k][j]; } for(int i=1; i<=n; i++) { if(i!=a) cout<<"("<<a<<" -> "<<i<<") = "<<d[a][i]<<endl; } return 0; }
1
0
0
0
0
梁锦程
高级光能
高级光能
关于最短路径我个人比较推崇这3个算法
SPFA(最好用,但难),Dijkstra算法,Floyd算法(3个中,最好写,但时间复杂度高)
这是一个blog,你可以看一看http://blog.csdn.net/qq_35644234/article/details/60870719