首页 > 试题广场 >

树上三角链

[编程题]树上三角链
  • 热度指数:137 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一棵包含个节点且以节点为根节点的树。
你需要从中选出个不同的节点,使得其两两之间的最短距离之和最大,并求出这个最大和。
定义树上两点之间的最短距离为这两点之间的简单路径所经过的边的数量。

输入描述:
第一行输入一个正整数
第二行输入个正整数。节点为节点的父节点。


输出描述:
输出一个整数代表最大和。
示例1

输入

5
4 1 1 4

输出

8

说明

3个节点为3,2,5
节点3与2的最短距离为3
节点3与5的最短距离为3
节点2与5的最短距离为2
3+3+2=8