QOJ.ac

QOJ

Limite de temps : 10 s Limite de mémoire : 2048 MB Points totaux : 100

#7930. 自己动手?

Statistiques

你是公司里一个包含你在内的 $n$ 名员工的负责人。每名员工都有一个员工 ID,是从 $1$ 到 $n$ 的整数,其中你的 ID 为 $1$。员工通常用 ID 简称:#1,#2 等。除你之外的每名员工都有一个唯一的直接上司,其 ID 小于该员工的 ID。员工的上司关系通过传递性定义如下:

  • 如果员工 #i 是员工 #j 的直接上司,则 #i 是 #j 的上司。
  • 如果 #i 是 #j 的上司,且 #j 是 #k 的上司,则 #i 是 #k 的上司。

包括你在内的每名员工最初都被分配了恰好一项任务。该任务可以由员工本人完成,也可以由其任意一位上司完成。每名员工可以完成任意数量的任务,但完成过多任务会使员工过于疲劳。形式化地,每名员工 #i 都有一个个人疲劳常数 $f_i$,如果 #i 总共完成了 $m$ 项任务,则 #i 的疲劳度将变为 $f_i \times m^2$。

你的任务是最小化所有 $n$ 名员工的疲劳度之和。

输入格式

输入包含单个测试用例,格式如下:

$n$ $b_2 \ b_3 \ \dots \ b_n$ $f_1 \ f_2 \ \dots \ f_n$

第一行包含整数 $n$,表示员工人数,其中 $2 \le n \le 5 \times 10^5$。第二行包含 $n-1$ 个整数 $b_i$ ($2 \le i \le n$),每个整数表示员工 #i 的直接上司,其中 $1 \le b_i < i$。第三行包含 $n$ 个整数 $f_i$ ($1 \le i \le n$),每个整数表示员工 #i 的疲劳常数,其中 $1 \le f_i \le 10^{12}$。

输出格式

输出所有 $n$ 名员工的疲劳度之和的最小值。

样例

样例输入 1

4
1 1 2
1 1 1 1

样例输出 1

4

样例输入 2

4
1 1 2
1 10 10 10

样例输出 2

16

样例输入 3

4
1 1 2
1 2 4 8

样例输出 3

10

说明

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

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

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

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

对于样例 3,其中一种最佳方式如下:

  • 1 完成 #1 和 #2 的任务,此时 #1 的疲劳度为 $1 \times 2^2 = 4$。

  • 2 完成 #4 的任务,此时 #2 的疲劳度为 $2 \times 1^2 = 2$。

  • 3 完成其最初分配的任务,此时 #3 的疲劳度为 $4 \times 1^2 = 4$。

  • 4 什么都不做,此时 #4 的疲劳度为 $8 \times 0^2 = 0$。

因此,疲劳度之和为 $4 + 2 + 4 + 0 = 10$。还存在另一种最佳方式,即员工 #1、#2 和 #3 分别完成各自最初分配的任务,且 #1 额外完成了 #4 的任务。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.