Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
68106 王籽易 最爱的城市 C++ 解答错误 0 0 MS 456 KB 873 2023-02-02 14:49:54

Tests(0/1):


#include <bits/stdc++.h> using namespace std; int n,m,u,v; int e[10001],ne[10001],h[10001],w[10001],idx=1; int st[10001]; int path[10001]; void add(int a,int b,int wi){ e[idx]=b,ne[idx]=h[a],h[a]=idx,w[idx]=wi,idx++; } void dijkstra(){ for(int i=1;i<=n;i++){ int v=0; for(int j=1;j<=n;j++){ if(st[j]==0&&path[j]<path[v]){ v=j; } } st[v]=1; for(int j=h[v];j!=-1;j=ne[j]){ int k=e[j]; path[k]=min(path[v]+w[j],path[k]); } } } int main(){ memset(e,-1,sizeof(e)); memset(ne,-1,sizeof(ne)); memset(h,-1,sizeof(h)); memset(path,0x3f,sizeof(path)); memset(st,0,sizeof(st)); cin>>n>>m; while(m--){ int a,b,wi; cin>>a>>b>>wi; add(a,b,wi); add(b,a,wi); } cin>>u>>v; path[u]=0; dijkstra(); if(path[v]!=0x3f3f3f3f) cout<<path[v]; else cout<<"No path"; return 0; }


测评信息: