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

    Type: Default 1000ms 256MiB

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

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目内容

给定一棵有 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 , 但是塔子哥还没有明确的解法。希望有大佬能提供标答