WA蒟蒻求调
查看原帖
WA蒟蒻求调
972001
YING_Miranda楼主2023/12/16 20:57
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1001;
int a[N][N],n,m,dis[N],vis[N]; 
signed main(){
	cin>>n>>m;
	memset(a,0x3f,sizeof(a));
	for(int i=1;i<=n;i++) a[i][i]=0;
	for(int i=1;i<=m;i++){
		int p,q,w;
		cin>>p>>q>>w;
		a[p][q]=w;
		a[q][p]=w;
	}
	//dijkstra
	memset(dis,0x3f,sizeof(dis));
	dis[1]=0;
	for(int i=1;i<=n;i++){
		int minn=0x3f3f3f3f,u=0;
		for(int j=1;j<=n;j++){
			if(!vis[j]&&dis[j]<minn){
				minn=dis[j];
				u=j;
			}
		}
		vis[u]=1;
		for(int j=1;j<=n;j++){
			if(!vis[j]&&dis[j]>dis[u]+a[u][j]){
				dis[j]=dis[u]+a[u][j];
			}
		}
	}
	for(int i=1;i<=n;i++){
	    if(dis[i]==0x3f) cout<<-1<<" ";
		else cout<<dis[i]<<" ";
	}
	return 0;
}

2023/12/16 20:57
加载中...