Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
41377 石利伟 城市路(Dijkstra) C++ 通过 100 31 MS 16048 KB 680 2022-06-11 17:23:53

Tests(11/11):


#include<bits/stdc++.h> using namespace std; const int N = 2010; int n, m; bool st[N]; int g[N][N], dist[N]; int dijkstra(){ memset(dist, 0x3f, sizeof dist); dist[1]=0; for (int i= 0;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] = true; for (int j=1;j<=n;j++) dist[j] = min(dist[j],dist[t]+g[t][j]); } if(dist[n]==0x3f3f3f3f) return -1; return dist[n]; } int main(){ cin >> n >> m; memset(g,0x3f, sizeof g); while(m--){ int a,b,c; cin>>a>>b>>c; g[a][b]=g[b][a]=min(g[a][b], c); } if(dijkstra()==-1)cout<<-1<<endl; else cout<<dist[n]<<endl; return 0; }


测评信息: