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$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_arc228_b/cf9300e56ac01dae51920457d36a2acbd06c61d04710bd961f2f72bc3a1126fe.png) ## 数据范围 - $1 \leq N \leq 2 \times 10^5$ - $P$ 是 $1$ 到 $N$ 的一个排列。 - $1 \leq A_i \leq 10^6$ - 所有输入均为整数。 由 ChatGPT 5 翻译