HELP,火速求救
查看原帖
HELP,火速求救
1271781
zhangchenyi_awa楼主2025/1/24 21:07

Code:

#include <bits/stdc++.h>
using namespace std;
void read(long long&x){
	long long s=0,w=1;
	char c=getchar();
	while(c<'0'||c>'9'){
		if(c=='-'){
			w=-1;
		}
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		s=s*10+c-'0';
		c=getchar();
	}
	x=s*w;
	return;
}
long long n,m,x;
long long u,v,w;
long long dist[1010][1010];
long long head[100010];
long long tot;
long long ans;
void floyd(){
	for(long long k=1;k<=n;k++){
		for(long long i=1;i<=n;i++){
			for(long long j=1;j<=n;j++){
				dist[i][j]=min(dist[i][j],dist[i][k]+dist[k][j]);
			}
		}
	}
	return ;
}
long long main(){
	memset(dist,0x3f3f3f3f,sizeof(dist));
	read(n);
	read(m);
	read(x);
	for(long long i=1;i<=m;i++){
		read(u);
		read(v);
		read(w);
		dist[u][v]=min(dist[u][v],w);
	}
	floyd();
	for(long long i=1;i<=n;i++){
		ans=max(ans,dist[i][x]+dist[x][i]);
	}
	printf("%lld",ans);
	return 0;
}

80分,必关

2025/1/24 21:07
加载中...