#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3fll
#define int long long
using namespace std;
const int N=131072,M=262144;
struct lsqxx{
int nxt,to,w;
}e[M];
int tot,h[N],d[N];
bool b[N];
queue<int>q;
void ade(int x,int y,int z){
e[++tot]=(lsqxx){h[x],y,z};
h[x]=tot;
}
void SPFA(int s){
memset(d,63,sizeof(d));
d[s]=0;
int x,y,z;
q.push(s);
while(!q.empty()){
x=q.front();
q.pop();
b[x]=0;
for(int i=h[x];~i;i=e[i].nxt){
y=e[i].to;
z=e[i].w;
if(d[y]>d[x]+z){
d[y]=d[x]+z;
if(!b[y])q.push(y);
}
}
}
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
memset(h,255,sizeof(h));
int n,m,x,y,z;
cin>>n>>m;
while(m--)cin>>x>>y>>z,ade(x,y,z),ade(y,x,z);
SPFA(1);
for(int i=2;i<=n;i++)cout<<(d[i]<inf?d[i]:-1)<<' ';
return 0;
}
RT,样例一直输出"2 4 1 5",Dijkstra也试过了,但就是不对……
各位大佬求调QwQ