Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
41309 | 杨竣周 | 城市路(Dijkstra) | C++ | 解答错误 | 0 | 0 MS | 320 KB | 538 | 2022-06-11 16:57:30 |
#include<bits/stdc++.h> using namespace std; int n,m,g[2001][2001],dist[10001]; bool st[10001]; int D(){ memset(dist,0x3f,sizeof dist); dist[1]=0; for(int i=1;i<=n;i++){ int t=-1; for(int j=1;j<=n;j++){ if(!st[j]&&(t==-1||dist[j]<dist[t])) t=j; } st[t]=1; for(int j=1;j<=n;j++){ dist[j]=min(dist[j],dist[t]+g[t][j]); } } if(dist[n]==0x3f3f3f) return-1; return dist[n]; } int main(){ cin>>n>>m; int a,b; for(int i=1;i<=m;i++){ cin>>a>>b; cin>>g[a][b]; } cout<<D(); return 0; }