#P1161. 2022年QHDX(深圳)保研夏令营机试题-第三题-遍历平滑性

2022年QHDX(深圳)保研夏令营机试题-第三题-遍历平滑性

题目内容

给定一棵有 nn 个节点二叉树 TT ,树上的每个点 ii 有点权 aia_i

考虑二叉树下的先序遍历 t=v1,,vnt = v_1,…,v_n ,我们定义其平滑性为

D(t)=1i<naviavi+1D(t)=\sum_{1\le i\lt n} |a_{v_i}-a_{v_{i+1}}|

现在,你可以交换任意节点的左右子树,使得树 TT 的先序遍历的平滑性最小。

输入描述

输入的第一行包含一个正整数 n(n2000)n(n \leq 2000)

输入的第二行包含 nn 个正整数,第 ii 个正整数 aia_i 为节点 ii 的点权,保证 1ai1091\le a_i \le 10^9

输入的第三行包含 n1n-1 个正整数,第 ii 个正整数 fif_i 为节点 i+1i+1 的父节点,保证 1fii1 \le f_i\le i 且每个 fif_i 不会出现超过 22 次。

我们约定 fif_i 第一次出现时,表示 i+1i+1fif_i 的左儿子, fif_i 第二次出现时,表示 i+1i+1fif_i 的右儿子。

输出描述

输出一个非负整数,即所求的最小平滑性。

样例

输入

5
1 2 3 4 5
1 1 2 2

输出

6

----------分割线------------

考场上的原数据n4e5n \leq 4e5 , 但是塔子哥还没有明确的解法。希望有大佬能提供标答