求调,玄关
  • 板块灌水区
  • 楼主PDAST
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/5/25 16:42
  • 上次更新2024/5/25 19:06:39
查看原帖
求调,玄关
982629
PDAST楼主2024/5/25 16:42

P1364

#include <bits/stdc++.h>
#define int long long
using namespace std;
struct Tree{
	int lc,rc,v,fa;
}a[101];
int v[101][101],minn=0x7fffffff;
signed main() {
	int n;
	cin>>n;
	memset(v,0x3f,sizeof(v));
	for(int i=1;i<=n;i++){
		cin>>a[i].v>>a[i].lc>>a[i].rc;
		a[a[i].lc].fa=i;
		a[a[i].rc].fa=i;
		v[i][i]=0;
	}
	for(int i=1;i<=n;i++){
		v[i][a[i].lc]=a[i].v;
		v[i][a[i].rc]=a[i].v;
		v[i][a[i].fa]=a[i].v;
	}
	for(int k=1;k<=n;k++){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				v[i][j]=min(v[i][j],v[i][k]+v[k][j]);
			}
		}
	}
	for(int i=1;i<=n;i++){
		int s=0;
		for(int j=1;j<=n;j++){
			if(i!=j){
				s+=v[j][i];
			}
		}
//		cout<<s<<" "; 
		minn=min(minn,s);
	}
	cout<<minn;
	return 0;
}
2024/5/25 16:42
加载中...