AT_arc228_b [ARC228B] Minimize Topological Order
题目描述
给定一个长度为 $N$ 的排列 $P = (P_1, P_2, \dots, P_N)$,其为 $1$ 到 $N$ 的一个排列,以及一个长度为 $N$ 的正整数序列 $A = (A_1, A_2, \dots, A_N)$。
对于一个有 $N$ 个顶点、顶点编号为 $1$ 到 $N$ 的有根树 $T$,定义 $f(T)$ 如下。
> 对于所有 $1$ 到 $N$ 的排列 $Q = (Q_1, Q_2, \dots, Q_N)$,如果满足以下条件,则称 $Q$ 是一个**好排列**。
>
> - 对于根以外的每个顶点 $v$,令其父节点为 $u$,在 $Q$ 中 $u$ 必须出现在 $v$ 之前。
>
> 定义 $f(T)$ 为所有**好排列**中字典序最小的排列。
并且,定义有根树 $T$ 的代价为 $\sum_{i=1}^{N} A_i c_i^2$,其中 $c_i$ 表示节点 $i$ 在 $T$ 中的子节点数量。
请你求出满足 $f(T) = P$ 的有根树 $T$ 的最小代价。
输入格式
输入从标准输入给出,格式如下:
> $N$
> $P_1\ P_2\ \dots\ P_N$
> $A_1\ A_2\ \dots\ A_N$
输出格式
输出满足条件的树的最小代价。
说明/提示
## 样例解释 1
满足条件的树 $T$ 有如下两种,它们都以顶点 $1$ 为根。
$T_1$ 的代价为 $1 \times 2^2 + 2 \times 0^2 + 1 \times 0^2 = 4$,$T_2$ 的代价为 $1 \times 1^2 + 2 \times 1^2 + 1 \times 0^2 = 3$,因此最小代价是 $3$。

## 数据范围
- $1 \leq N \leq 2 \times 10^5$
- $P$ 是 $1$ 到 $N$ 的一个排列。
- $1 \leq A_i \leq 10^6$
- 所有输入均为整数。
由 ChatGPT 5 翻译