#P14823. [ICPC 2023 Yokohama R] Do It Yourself?

    ID: 14740 远端评测题 10000ms 2048MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>树上启发式合并2023树链剖分ICPC横浜

[ICPC 2023 Yokohama R] Do It Yourself?

Description

你是一家公司里包括你在内的 nn 名员工的负责人。每名员工有一个员工 ID,是一个 11nn 的整数,你的 ID 是 11。员工通常简称为 #1\#1#2\#2 等。除你之外的每名员工都有一个唯一的 直属上司,其 ID 小于他/她的 ID。一名员工的 上司 通过传递性定义如下:

  • 如果员工 #i\#i 是员工 #j\#j 的直属上司,那么 #i\#i#j\#j 的上司。
  • 如果 #i\#i#j\#j 的上司,且 #j\#j#k\#k 的上司,那么 #i\#i#k\#k 的上司。

包括你在内的每名员工最初恰好被分配一项任务。该任务可以由他/她自己完成,也可以由他/她的任意一位上司完成。每名员工可以完成任意数量的任务,但完成过多任务会使员工过度疲劳。形式化地说,每名员工 #i\#i 有一个个体疲劳度常数 fif_i,如果 #i\#i 总共完成 mm 项任务,那么 #i\#i疲劳水平 将变为 fi×m2f_i \times m^2

你的使命是最小化所有 nn 名员工的疲劳水平之和。

Input Format

输入由单个测试用例组成,格式如下。

$$\begin{aligned} & n \\ & b_2 \ b_3 \ \cdots \ b_n \\ & f_1 \ f_2 \ \cdots \ f_n \\ \end{aligned}$$

第一行的整数 nn 是员工数量,其中 2n5×1052 \leq n \leq 5 \times 10^5。第二行有 n1n-1 个整数 bib_i (2in2 \leq i \leq n),每个代表员工 #i\#i 的直属上司,其中 1bi<i1 \leq b_i < i。第三行有 nn 个整数 fif_i (1in1 \leq i \leq n),每个是员工 #i\#i 的疲劳度常数,其中 1fi10121 \leq f_i \leq 10^{12}

Output Format

输出所有 nn 名员工的疲劳水平之和的最小可能值。

4
1 1 2
1 1 1 1
4
4
1 1 2
1 10 10 10
16
4
1 1 2
1 2 4 8
10

Hint

:::align{center}

图 J.1. 三个样例的示意图(从左到右) :::

三个样例的情况和解决方案如图 J.1 所示。

对于样例输入 1,唯一的最优方式是每名员工自己完成自己的任务。也就是说,你只需对每个人说“你自己做吧!”。

对于样例输入 2,唯一的最优方式是员工 #1\#1 完成所有任务。也就是说,你只需对每个人说“交给我吧!”。

对于样例输入 3,一种最优方式如下:

  • #1\#1 完成 #1\#1#2\#2 的任务,那么 #1\#1 的疲劳水平为 1×22=41 \times 2^2 = 4
  • #2\#2 完成 #4\#4 的任务,那么 #2\#2 的疲劳水平为 2×12=22 \times 1^2 = 2
  • #3\#3 完成最初分配的任务,那么 #3\#3 的疲劳水平为 4×12=44 \times 1^2 = 4
  • #4\#4 不做事,那么 #4\#4 的疲劳水平为 8×02=08 \times 0^2 = 0

因此,疲劳水平之和为 4+2+4+0=104 + 2 + 4 + 0 = 10。还存在另一种最优方式,即员工 #1\#1#2\#2#3\#3 自己完成最初分配的任务,并且 #1\#1 额外完成 #4\#4 的任务。

翻译由 DeepSeek V3 完成