QOJ.ac

QOJ

حد الوقت: 2 s حد الذاكرة: 1024 MB مجموع النقاط: 100

#2970. 贸易路线

الإحصائيات

条条大路通罗马。在本题中,这意味着罗马帝国道路网中的每一条路都只能单向通行。除了罗马之外,每个城市都恰好有一条路通向外部,且沿着这些道路走,最终总能到达罗马。

每个城市(包括罗马本身)都可以建立一条通往罗马的贸易路线,并为罗马带来一定的价值。这些价值各不相同。由于每个城市都不希望贸易商过于拥挤,因此它们限制了该城市所能参与的贸易路线数量。

如果一个城市包含在从建立贸易路线的城市到罗马的唯一路径上,我们就称该城市参与了这条贸易路线。一个城市也参与其自身建立的贸易路线。

给定各城市的限制条件,请确定通过选择一个城市子集来建立贸易路线,能为罗马带来的最大价值。

输入格式

第一行包含一个整数 $N$ ($2 \le N \le 300\,000$),表示城市数量。城市编号为 $1$ 到 $N$。罗马是 $1$ 号城市。

下一行包含 $N-1$ 个整数 $p_2, p_3, \dots, p_N$ ($1 \le p_i < i$),其中 $p_i$ 是从城市 $i$ 出发沿唯一道路所到达的城市。

下一行包含 $N$ 个整数 $b_1, b_2, \dots, b_N$ ($0 \le b_i \le N$),其中 $b_i$ 是城市 $i$ 所能参与的贸易路线的最大数量。

下一行包含 $N$ 个不同的整数 $v_1, v_2, \dots, v_N$ ($0 \le v_i \le 10^9$),表示如果城市 $i$ 建立贸易路线,则为罗马带来的价值。

输出格式

首先输出罗马从任何有效的贸易路线子集中所能获得的最大价值。

接下来输出 $T$,即建立的贸易路线数量,然后按升序输出所选的 $T$ 个城市。

如果存在多种可能的方案,输出其中任意一种即可。

样例

样例输入 1

7
1 1 2 2 3 3
2 1 2 1 1 1 1
6 5 3 8 4 7 1

样例输出 1

15
2 4 6

样例输入 2

9
1 1 2 3 3 4 4 4
4 4 2 4 1 0 1 1 1
100 30 10 0 50 200 12 15 13

样例输出 2

195
4 1 2 5 8

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.