#ATarc164f. [ARC164F] Subtree Reversi

[ARC164F] Subtree Reversi

题目描述

给定一棵有 NN 个顶点的有根树,顶点编号为 11NN,以顶点 11 为根。对于每个顶点 ii2iN2 \leq i \leq N),其父节点为 pip_i

Alice 和 Bob 使用这棵树进行如下游戏:

  • Alice 先手,Bob 后手,双方轮流在树的顶点上放置一枚石子。石子有正反两面,正面为白色,反面为黑色。Alice 总是将白色面朝上放置,Bob 总是将黑色面朝上放置。
  • 每次只能在当前没有石子的顶点,并且其所有子孙顶点都已经放置了石子的顶点上放置石子。
  • 放置石子时,需要将该顶点所有子孙上的石子全部翻面(但新放置的石子不翻面)。

当所有顶点都放置了石子后,游戏结束。此时,白色面朝上的石子数量即为 Alice 的得分。

Alice 希望最大化得分,Bob 希望最小化 Alice 的得分。双方都采取最优策略时,Alice 的得分是多少?

输入格式

输入为一行,格式如下:

NN p2p_2 p3p_3 \ldots pNp_N

输出格式

输出一个整数,表示 Alice 的得分。

样例 1

输入

4
1 1 2

输出

2

样例 2

输入

7
1 1 2 4 4 4

输出

5

说明/提示

限制条件

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1pi<i1 \leq p_i < i2iN2 \leq i \leq N
  • 输入的所有值均为整数
  • 给定的图结构保证是一棵树

样例解释 1

对于给定的树,最初可以放置石子的顶点只有 3,43,4。例如,游戏可以如下进行:

  • Alice 在顶点 44 放置白色面朝上的石子。此时,顶点 22 的所有子孙都已放置石子,因此可以放置石子。
  • Bob 在顶点 22 放置黑色面朝上的石子,并将顶点 44 的石子翻面,使其变为黑色面朝上。
  • Alice 在顶点 33 放置白色面朝上的石子。
  • Bob 在顶点 11 放置黑色面朝上的石子,并将顶点 2,3,42,3,4 的石子全部翻面。

此时,顶点 1,2,3,41,2,3,4 上的石子分别为黑、白、黑、白朝上。实际上,这是一种双方最优策略下的进行方式,答案为 22

由 ChatGPT 4.1 翻译