社区讨论

70pts求调(floyd)

P1828[USACO3.2] 香甜的黄油 Sweet Butter参与者 4已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@mkgom54m
此快照首次捕获于
2026/01/16 17:34
上个月
此快照最后确认于
2026/01/18 20:40
上个月
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,p,c;
int x,y,z;
int a[1000];
int d[1000][1000];
int main(){
	std::cin.tie(nullptr);
	std::ios::sync_with_stdio(false);
	cin>>n>>p>>c;
	memset(d,0x3f,sizeof(d));
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=c;i++){
		cin>>x>>y>>z;
		d[x][y]=d[y][x]=z;
		d[i][i]=0;
	}
	for(int k=1;k<=p;k++){
		for(int i=1;i<=p;i++){
			for(int j=1;j<=p;j++){
				if(d[i][k]+d[k][j]<d[i][j]){
					d[i][j]=d[i][k]+d[k][j];
				}
			}
		}
	}
	int ans=1e9,cnt=0;
	for(int i=1;i<=p;i++){
		for(int j=1;j<=n;j++){
			cnt+=d[i][a[j]];
		}
		ans=min(ans,cnt);
		cnt=0;
	}
	cout<<ans;
	return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...