蒟蒻0pts求调
查看原帖
蒟蒻0pts求调
775095
ws517602楼主2024/7/23 18:58

迪杰斯特拉写的,有没有大佬帮忙调一下

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,m,s,a[1011][1011],d[1000100],v[1000100];
void dfs(int x){
	memset(d,127,sizeof(d));
	d[x]=0;
	for(int i=1;i<=n;i++){
		int j=-1;
		for(int k=1;k<=n;k++){
			if(!v[k]&&(j==-1||d[k]<d[j])){
				j=k;
				
			}
		}
		v[j]=1;
	//	cout<<j<<endl;
		for(int k=1;k<=n;k++){
			d[k]=min(d[k],d[j]+a[j][k]);
		}
		
	}
}
int main(){
	cin>>n>>m>>s;
	memset(a,127,sizeof(a));
	for(int i=1;i<=n;i++){
		int x,y,z;
		cin>>x>>y>>z;
		a[x][y]=z;
		if(x==0){
			d[x]=z;
		}
	}
	dfs(s);
	for(int i=1;i<=n;i++){
//		if(d[i]==0x7fffffff){
//			cout<<pow(2,31)-1;
//		}
		cout<<d[i]<<" ";
	}
	return 0;
}
2024/7/23 18:58
加载中...