Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
150222 maoyu 最短路径 C++ 通过 100 0 MS 288 KB 724 2024-06-01 16:35:37

Tests(10/10):


#include<iostream> using namespace std; const int BM = 110, inf = 1e9; int n, f[BM][BM], a, b, c, dis[BM]; bool vis[BM]; int main(){ for(int i = 0; i < BM; i++){ for(int j = 0; j < BM; j++){ f[i][j] = inf; } dis[i] = inf; f[i][i] = 0; } dis[1] = 0; cin >> n; while(cin >> a >> b >> c && (a != 0 || b != 0 || c != 0)){ f[a][b] = c; } int d = -1, e = inf; while(true){ d = -1, e = inf; for(int i = 1; i <= n; i++){ if(dis[i] < e && !vis[i]){ d = i; e = dis[i]; } } if(d == -1) break; vis[d] = true; for(int i = 1; i <= n; i++){ if(!vis[i]){ dis[i] = min(dis[i], dis[d] + f[d][i]); } } } cout << dis[n]; return 0; }


测评信息: