QOJ.ac

QOJ

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

#7347. HDRF

الإحصائيات

如果你热爱大数据,你应该熟悉以分布式方式运行代码。这总是需要大量的基础设施元素协同工作,以使并行计算成为可能。其中一个元素通常是调度程序,它决定了哪些已调度的任务应该以某种“公平”和“高效”的方式立即启动。

基于任务的性质(测试、长时间运行、实时等),它们被组织成一种可以表示为有根树的层次结构。

以下问题受到一种称为层次主导资源公平性(Hierarchical Dominant Resource Fairness, HDRF)的现代调度算法的启发。

给定一棵以顶点 1 为根的树 $T$,它包含 $n$ 个顶点。树中的每个顶点 $i$ 都有一个唯一的优先级 $v_i$。对于每个顶点,我们可以计算值 $r_i$:即顶点 $i$ 的子树(包含自身)中最小的 $v_i$。

考虑以下树遍历算法:

  1. 从根顶点开始。
  2. 选择当前顶点的直接子节点中 $r_i$ 值最小的一个。
  3. 移动到该子节点。
  4. 如果当前顶点是叶子节点,将其记录下来并从树中删除(当我们删除一个顶点时,我们会重新计算所有 $r_i$)。否则,回到第 2 步。

从第 1 步开始重复上述过程,直到树为空。

给定树 $T$ 和数字 $v_i$,计算顶点被记录下来的顺序。

输入格式

第一行包含一个整数 $n$ ($2 \le n \le 100\,000$),表示树中的顶点数。 第二行包含 $n-1$ 个整数,其中第 $i$ 个整数 $p_i$ ($1 \le p_i \le n$) 是顶点 $(i+1)$ 在树中的父节点。顶点的编号为 $1$ 到 $n$。保证输入构成一棵以顶点 1 为根的有效有根树。 第三行包含 $n$ 个不同的整数 $v_1, v_2, \dots, v_n$ ($0 \le v_i \le 10^9$),表示顶点的优先级。

输出格式

按算法记录顶点的顺序输出 $n$ 个顶点。

样例

输入 1

5
4 4 1 1
3 5 2 1 4

输出 1

3 2 4 5 1

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.