1 条题解
-
0
SPFA呀哥们
#include<bits/stdc++.h> using namespace std; struct edge{ int v; int x; }; vector<edge>e[1000005]; int dis[1000005]; bool inq[1000005]; int n,m,s; void SPFA(int s){ fill(dis+1,dis+n+1,(1<<31)-1); queue<int>q; dis[s]=0; inq[s]=true; q.push(s); while(!q.empty()){ int u=q.front(); q.pop(); inq[u]=false; for(int i=0;i<e[u].size();i++){ if(e[u][i].x+dis[u]<dis[e[u][i].v]){ dis[e[u][i].v]=e[u][i].x+dis[u]; if(!inq[e[u][i].v]){ q.push(e[u][i].v); } inq[e[u][i].v]=true; } } } } signed main(){ cin>>n>>m; for(int i=1;i<=m;i++){ int u,v,x; cin>>u>>v>>x; e[u].push_back({v,x}); e[v].push_back({u,x}); } SPFA(1); cout<<dis[n]; return 0; }
信息
- ID
- 7050
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者