RT
#include<iostream>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<fstream>
#include<map>
#include<iomanip>
#include<iostream>
#include<queue>
#include<set>
#include<sstream>
#include<stack>
#include<string>
#include<vector>
using namespace std;
int n,m,s;
int orz[20005][20005];
int sto[20005];
bool vis[20005];
void dijkstra(int l){
memset(vis,0,sizeof(vis));
for(int i=1;i<=n;i++){
sto[i]=orz[l][i];
}
sto[l]=0;
vis[l]=1;
for(int i=1;i<=n;i++){
int x,mini=2147474747;
for(int j=1;j<=n;j++){
if(!vis[j]&&sto[j]<=mini){
mini=sto[j];
x=j;
}
}
vis[x]=1;
for(int j=1;j<=n;j++){
sto[j]=min(sto[j],sto[x]+orz[x][j]);
}
}
}
int main(){
cin>>n>>m>>s;
memset(vis,0,sizeof(vis));
for(int i=0;i<=n;i++){
for(int j=0;j<=n;j++){
orz[i][j]=2147483647;
}
}
for(int i=1;i<=m;i++){
int u,v,w;
cin>>u>>v>>w;
orz[u][v]=w;
}
dijkstra(s);
for(int i=1;i<=n;i++){
cout<<sto[i]<<" ";
}
return 0;
}
MLE的问题先忽略不计,这个是怎么WA的啊QAQ
还有这题什么时候掉橙了个人感觉可以黄啊