Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
41362 梅煦洋 城市路(Dijkstra) C++ 解答错误 9 1 MS 1036 KB 724 2022-06-11 17:20:33

Tests(1/11):


#include<bits/stdc++.h> using namespace std; const int N=100010; int k,n,m; //int g[N][N]; int dist[N]; int backup[N]; struct edge{ int a; int b; int w; }edge[N]; int befd(){ memset(dist,0x3f,sizeof dist); dist[1]=0; for(int i=1;i<=k;i++){ memcpy(backup,dist,sizeof dist); for(int j=1;j<=m;j++){ int a=edge[j].a,b=edge[j].b,w=edge[j].w; dist[b]=min(dist[b],backup[a]+w); // st[t]=true; } } // if(dist[n]==0x3f3f3f3f) return -1; return dist[n]; } int main(){ cin>>n>>m; k=m; for(int i=1;i<=m;i++){ int a,b,c; cin>>a>>b>>c; edge[i].a=a,edge[i].b=b,edge[i].w=c; } int t=befd(); if(t>=0x3f3f3f3f/2) cout<<-1<<endl; else cout<<t<<endl; return 0; }


测评信息: