Luogu1268 樹的重量

思路!好題!太神奇了!

推薦這篇

CODE:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline int qr(){
	int x=0;
	char ch=getchar();
	for(;!isdigit(ch); ch=getchar());
	for(; isdigit(ch); ch=getchar()) x=(x<<3)+(x<<1)+ch-48;
	return x;
}
int n,a[31][31],ans,tmp;
int main(){
	while(scanf("%d",&n)!=EOF && n){
		for(int i=1; i<=n-1; i++)
			for(int j=i+1; j<=n; j++)
				a[i][j]=a[j][i]=qr();
		ans=a[1][2];
		for(int i=3; i<=n; i++){
			tmp=0x7fffffff;
			for(int j=1; j<=i-1; j++) 
				for(int k=1; k<=j-1; k++)
					tmp=min(tmp,(a[j][i]+a[k][i]-a[j][k])>>1);
			ans+=tmp;
		}
		printf("%d\n",ans);
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章