QOJ.ac

QOJ

时间限制: 2 s 内存限制: 1024 MB 总分: 100

#946. 魔法树

统计

我们有一棵魔法树:一棵有 $n$ 个顶点的有根树。顶点编号为 $1$ 到 $n$,其中顶点 $1$ 是根节点。

魔法树会结出魔法果实。果实只生长在除根节点以外的树的顶点上。每个顶点最多包含一个果实。

现在是第 $0$ 天,没有任何果实成熟。每个果实只会在某一天成熟。对于每个果实,我们已知它生长的顶点 $v_j$、它成熟的日期 $d_j$,以及如果在它成熟时采摘所能提取的魔法果汁量 $w_j$。

果实必须通过砍掉树的一些分支来采摘。在每一天,你可以根据需要砍掉任意数量的树枝。被砍掉的树的部分会掉落到地上,你可以收集其中包含的所有成熟果实。所有在未成熟时掉落到地上的果实都会被丢弃,无法从中提取任何魔法果汁。

形式化地说,在每一天,你可以删除树的一些边。每当你这样做时,树会分裂成多个连通分量。然后,你删除所有不包含根节点的连通分量,并收获这些分量中包含的所有成熟果实。

给定树的描述以及所有 $m$ 个果实的位置、成熟日期和果汁量,计算我们可以从树中收获的魔法果汁的最大总量。

输入格式

第一行包含三个空格分隔的整数 $n$ ($2 \le n \le 100,000$),$m$ ($1 \le m \le n - 1$) 和 $k$ ($1 \le k \le 100,000$),分别表示顶点数、果实数以及果实可能成熟的最大日期。

接下来的 $n - 1$ 行,每行包含一个整数 $p_i$。对于每个 $i$(从 $2$ 到 $n$),顶点 $p_i$ ($1 \le p_i \le i - 1$) 是顶点 $i$ 的父节点。

最后 $m$ 行中的每一行描述一个果实。第 $j$ 行的形式为 “$v_j$ $d_j$ $w_j$” ($2 \le v_j \le n, 1 \le d_j \le k, 1 \le w_j \le 10^9$)。

保证没有顶点包含超过一个果实(即 $v_j$ 的值各不相同)。

输出格式

输出一行,包含一个整数,表示可以从树中收获的魔法果汁的最大总量。

子任务

  • 子任务 1(6 分):$n, k \le 20$,且对于所有 $j$,$w_j = 1$
  • 子任务 2(3 分):果实只生长在树的叶子节点上
  • 子任务 3(11 分):对于每个 $i$,$p_i = i - 1$,且对于所有 $j$,$w_j = 1$
  • 子任务 4(12 分):$k \le 2$
  • 子任务 5(16 分):$k \le 20$,且对于所有 $j$,$w_j = 1$
  • 子任务 6(13 分):$m \le 1,000$
  • 子任务 7(22 分):对于所有 $j$,$w_j = 1$
  • 子任务 8(17 分):无附加限制

样例

样例输入 1

6 4 10
1
2
1
4
4
3 4 5
4 7 2
5 4 1
6 9 3

样例输出 1

9

说明

在样例输入中,一种最优解如下:

  • 在第 4 天,砍掉顶点 4 和 5 之间的边,收获一个含有 1 单位魔法果汁的成熟果实。在同一天,砍掉顶点 1 和 2 之间的边,从顶点 3 的成熟果实中收获 5 单位魔法果汁。
  • 在第 7 天,什么都不做。(我们可以收获顶点 4 中刚刚成熟的果实,但这样做不是最优的。)
  • 在第 9 天,砍掉顶点 1 和 4 之间的边。丢弃顶点 4 中不再成熟的果实,并从顶点 6 的成熟果实中收获 3 单位魔法果汁。(或者,我们可以通过砍掉顶点 4 和 6 之间的边达到同样的效果。)

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.