PID101 / 树的重量
题目描述

树可以用来表示物种之间的进化关系。一棵“进化树”是一个带边权的树,其结点表示一个物种,两个结点之间的距离表示两个物种的差异。现在,一个重要的问题是,根据物种之间的距离,重构相应得“进化树”。

令N={1..n},用一个N上的矩阵M来定义树T。其中,矩阵M满足:对于任意的i,j,k,有M[i,j]+M[j,k]<=M[i,k]。树T满足:

1、叶结点属于集合N;

2、边权均属于非负整数;

3、dt[i,j]=M[i,j]表示树上i到j的最短路径长度。

如下矩阵M描述了一棵树。

树的重量是指树所有边权之和。对于任意给出的合法矩阵M,它所能表示树的重量是唯一确定的,不可能找到两颗不同重量的树,他们都符合M。你的任务就是,根据给定的矩阵M,计算M所表示树的重量。上图是给出的矩阵M所能表示的一棵树,这棵树的总重量是15。

输入格式

第一行,整数n(2<=n<=30)。 后面n-1行,给出的是矩阵M的一个上三角(不包含对角线),每个元素是不超过100的非负数,输入保证是合法的。

输出格式

给定矩阵M所描述的树的重量。

样例输入
样例输出
提交题目 Error [ 更改语言 ] Language
C C++ Pascal Python2
相关讨论
查看更多讨论
发布新讨论 讨论