SPFA 结果就悲剧了……90分求助
查看原帖
SPFA 结果就悲剧了……90分求助
377578
行动欲望π楼主2022/8/24 09:23
#include<bits/stdc++.h>
using namespace std;
vector <int> v[10010][5];
queue <int > q;
int dis[10010];
int book[10010];
int main(){
	int n,m,s;
	cin>>n>>m>>s;
	for(int i=1;i<m;i++){
		int u,v1,w;
		cin>>u>>v1>>w;
		v[u][1].push_back(v1);
		v[u][2].push_back(w);
	}
	for(int i=1;i<=n;i++){
		dis[i]=0x7fffffff;
	}
	dis[s]=0;
	q.push({s});
	book[s]=1;
	while(!q.empty()){
		int t=q.front();
		q.pop();
		book[t]=0;
		for(int i=0;i<v[t][1].size();i++){
			int p=v[t][1][i];
			dis[p]=min(dis[p],dis[t]+v[t][2][i]);
			if(dis[p]==dis[t]+v[t][2][i]){
				if(!book[p]){
					book[p]=1;
					q.push({p});
				}
			}
		}
	}
	for(int i=1;i<=n;i++){
		cout<<dis[i]<<' ';
	}
}
2022/8/24 09:23
加载中...