1 条题解
-
1
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
struct node{
int v,w;};
int n,m,s,t;
vector a[N];
int dis[N];
bool f[N];
int main(){
cin>>n>>m>>s>>t; int u,v,w; for(int i=1;i<=m;i++){ cin>>u>>v>>w; a[u].push_back({v,w}); a[v].push_back({u,w}); } memset(dis,0x3f,sizeof(dis)); dis[s]=0; for(int i=1;i<=n;i++){ int mi=-1; for(int j=1;j<=n;j++){ if(f[j]==false&&(mi==-1||dis[j]<dis[mi])){ mi=j; } } f[mi]=true; for(int j=0;j<a[mi].size();j++){ if(f[a[mi][j].v]==false&&dis[mi]+a[mi][j].w<dis[a[mi][j].v]){ dis[a[mi][j].v]=dis[mi]+a[mi][j].w; } } } cout<<dis[t]; return 0;}
信息
- ID
- 871
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 8
- 已通过
- 1
- 上传者