QOJ.ac

QOJ

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

#2411. 平衡切割

Statistiques

Anna van Lier 教授正在准备一场关于平衡二叉搜索树的讲座。回想一下,平衡二叉搜索树具有以下两个性质:

  • 平衡树:对于每个节点,其左子树的高度与右子树的高度之差不超过 1。例如在图 B.1 中,节点 7 的左子树高度为 2,右子树高度为 1。如果一个节点没有左(或右)子树,则该子树的高度视为 0。
  • 搜索树:每个节点都有一个值。节点的值大于其左子树中所有节点的值,且小于其右子树中所有节点的值。例如在图 B.1 中,节点 7 的左子树包含值 4、5 和 6,它们都小于 7。

Anna 从同事那里得到了一棵这样的树。这棵树有 $n$ 个节点,节点的值为 $1$ 到 $n$。然而,这棵树太大了,无法放入她的幻灯片中,因此她想将其缩小。具体来说,她希望从树中删除一些节点,使得剩余的节点恰好有 $k$ 个。每当她删除一个节点时,她也会删除该节点的子树。当然,生成的树必须仍然是一棵平衡二叉搜索树。

出于教学目的,Anna 希望最终树中的节点值尽可能小。因此,她希望剩余的 $k$ 个节点值的列表在字典序上尽可能小。例如,她更倾向于包含值 2, 5, 9 的树,而不是包含值 2, 6, 7 的树。

由于 Anna 忙于处理更重要的事情,寻找要删除哪些节点的任务就落在了她的助教(也就是你)身上。

图 B.1:样例输入 2 及其解的示意图。

输入格式

输入包含:

  • 一行,包含两个整数 $n$ 和 $k$ ($2 \le n \le 5 \cdot 10^5$, $1 \le k \le n - 1$),表示树中的节点数和要保留的节点数。
  • $n$ 行,第 $i$ 行包含一个整数 $p_i$ ($1 \le p_i \le n$ 或 $p_i = -1$),表示值为 $i$ 的节点的父节点,如果值为 $i$ 的节点是根节点,则为 $-1$。

保证给定的树是一棵平衡二叉搜索树。

输出格式

输出一行长度为 $n$ 的二进制字符串。如果值为 $i$ 的节点应被保留,则第 $i$ 个字符应为 '1';如果应被删除,则为 '0'。

样例

样例输入 1

3 1
2
-1
2

样例输出 1

010

样例输入 2

8 5
3
1
-1
5
7
5
3
7

样例输出 2

11101010

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.