2500.遍历平滑性

通过数:7提交数:22学校:清华大学保研机试真题 题目列表 标签
题目描述 给定一棵有 $n$ 个节点的二叉树 $T$,树上的每个节点 $i$ 有点权 $a i$。 考虑二叉树的先序遍历 $t = v 1, \ldots, v n$,我们定义其平滑性为: $$D(t)=\sum {1 \le i < n} a {v i}-a {v {i+1}} $$ 现在,你可以交换任意节点的左右子树,使得树 $T$ 的先序遍历的平滑性最小。 输入格式 输入的第一行包含一个正整数 $n$($n \le 2000$)。 输入的第二行包含 $n$ 个正整数,第 $i$ 个正整数 $a i$ 为节点 $i$ 的点权,保证 $1 \le a i \le 10^9$。 输入的第三行包含 $n-1$ 个正整数,第 $i$ 个正整数 $f i$ 为节点 $i+1$ 的父节点,保证 $1 \le f i \le i$ 且每个 $f i$ 不会出现超过 $2$ 次。 约定 $f i$ 第一次出现时,表示 $i+1$ 是 $f i$ 的左儿子;$f i$ 第二次出现时,表示 $i+1$ 是 $f i$ 的右儿子。 输出格式 输出一个非负整数,即所求的最小平滑性。 输入样例 5 2 1 2 3 4 1 1 2 2 输出样例 4
C
补全
点击调试按钮即可调试代码。

点击提交按钮即可提交代码。