#P17000. [NWERC 2019] Balanced Cut
[NWERC 2019] Balanced Cut
背景
译自 Northwestern Europe Regional Contest (NWERC) 2019。
题目描述
Anna van Lier 教授正在准备一节关于平衡二叉搜索树的课。回忆一下,平衡二叉搜索树具有两个性质:
- 平衡树: 对每个结点,其左子树高度和右子树高度之差至多为 。例如在下图中,结点 的左、右子树高度分别为 和 。如果一个结点没有左子树或右子树,则对应子树的高度视为 。
- 搜索树: 每个结点有一个值。某个结点的值大于其左子树中的所有值,并且小于其右子树中的所有值。例如在下图中,结点 的左子树包含值 ,它们都小于 。
Anna 从同事那里得到了一张这样的树的图。这棵树有 个结点,结点值为 到 。但是这棵树太大了,无法放进她的幻灯片中,所以她想把它变小。
具体来说,她想从树中擦除一些结点,使得最后恰好剩下 个结点。每当她擦除一个结点时,也会一并擦除该结点的所有子树。当然,得到的树仍然必须是一棵平衡二叉搜索树。
出于教学目的,Anna 希望最终树中的结点值尽量小。因此,她希望剩下的 个结点值组成的列表按字典序尽可能小。例如,与包含值 的树相比,她更喜欢包含值 的树。
Anna 忙于处理更重要的事情,因此寻找应该擦除哪些结点的任务就交给了她的助教,也就是你。
:::align{center}

:::
输入格式
输入包含:
- 第一行包含两个整数 和 (, ),分别表示树中结点数和需要保留的结点数。
- 接下来 行,第 行包含一个整数 ( 或 ),表示值为 的结点的父亲;若值为 的结点是根,则 。
保证给定的树是一棵平衡二叉搜索树。
输出格式
输出一行长度为 的二进制字符串。第 个字符应为 1,当且仅当值为 的结点应被保留;否则应为 0。
3 1
2
-1
2
010
8 5
3
1
-1
5
7
5
3
7
11101010
提示
【数据规模与约定】
- 。
- 。
- 对每个结点, 或 。
- 给定的树保证是一棵平衡二叉搜索树。