问【模板】单源最短路径(弱化版) 10分
  • 板块灌水区
  • 楼主ABCKKK
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/12/20 22:07
  • 上次更新2024/12/21 10:10:58
查看原帖
问【模板】单源最短路径(弱化版) 10分
1074422
ABCKKK楼主2024/12/20 22:07
#include<iostream>
#include<vector>
using namespace std;
struct wWwWwWwWw{
	int to,p;
};
vector<wWwWwWwWw>a[500005];
long long dis[100005];
bool mk[100005];
int main(){
	int n,m,s;
	cin>>n>>m>>s;
	for(int i=1;i<=m;i++){
		int u,v,w;
		cin>>u>>v>>w;
		a[u].push_back({v,w});
	}
	for(int i=0;i<=n;i++){
		dis[i]=2147483647;
	}
	dis[s]=0;
	for(int i=1;i<=n;i++){
		int pos=0;
		for(int j=1;j<=n;j++){
			if(dis[pos]>dis[j]&&mk[j]==0) pos=j;
		}
		mk[pos]=1;
		for(auto ed:a[pos]){
			if(mk[ed.to]==0){
				dis[ed.to]=min(dis[ed.to],dis[pos]+ed.p);
			}
		}
	}
	for(int i=1;i<=n;i++){
		cout<<dis[i]<<" ";
	}
}
2024/12/20 22:07
加载中...