2866.遍历平滑性-夏令营

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

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