敢为为何70?
查看原帖
敢为为何70?
337410
御坂10026号楼主2020/9/22 23:54

RT,WA了,求大佬指教``` #include #include #include #define ll long long using namespace std; ll n,m,s,u[200005],v[200005],w[200005],d[100005],now[200005],before[200005]; bool in[200005]; queue q; int main(){ cin>>n>>m>>s; memset(now,-1,sizeof(now)); memset(before,-1,sizeof(before)); for(int i=1;i<=n;i++) d[i]=2147483647; for(int i=1;i<=m;i++){ cin>>u[i]>>v[i]>>w[i]; before[i]=now[u[i]]; now[u[i]]=i; } d[s]=0; q.push(s); while(!q.empty()){ int x=q.front(); q.pop(); in[x]=false; for(int i=now[x];i!=-1;i=before[i]){ if(d[v[i]]>d[x]+w[i]){ d[v[i]]=d[x]+w[i]; if(!in[v[i]]){ in[v[i]]=true; q.push(v[i]); } } } } for(int i=1;i<=n;i++) cout<<d[i]<<" "; return 0; }

2020/9/22 23:54
加载中...