AT_arc086_c.[ARC086E] Smuggling Marbles

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

すぬけ君有一棵有 N+1N+1 个节点的有根树。这棵树的节点编号为 00 到 NN,其中节点 00 是根。对于每个 ii(1≤i≤N1 \leq i \leq N),节点 ii 的父节点是 pip_i。

すぬけ君除了这棵树之外,还用空箱子和弹珠来玩游戏。这个游戏的玩法如下:首先在若干个节点上各放一个弹珠,然后按照以下步骤进行:

  1. 如果节点 00 上有弹珠,将该弹珠移到箱子里。
  2. 把所有弹珠从当前节点同时移动到父节点上。
  3. 对于每个有两个及以上弹珠的节点,将这些弹珠全部移除。
  4. 如果仍然存在有弹珠的节点,则回到第 1 步,否则游戏结束。

由于每种弹珠的放法有 2N+12^{N+1} 种,请你计算所有情况下游戏结束时箱子中的弹珠数之和,并对 1,000,000,0071,000,000,007 取模后输出。

输入格式

输入为一行,格式如下:

N p1 p2 ⋯ pNN\ p_1\ p_2\ \cdots\ p_N

输出格式

输出答案。

输入输出样例

  • 输入#1

    2
    0 0

    输出#1

    8
  • 输入#2

    5
    0 1 1 0 4

    输出#2

    96
  • 输入#3

    31
    0 1 0 2 4 0 4 1 6 4 3 9 7 3 7 2 15 6 12 10 12 16 5 3 20 1 25 20 23 24 23

    输出#3

    730395550

说明/提示

限制条件

  • 1≤N<2×1051 \leq N < 2 \times 10^5
  • 0≤pi<i0 \leq p_i < i

部分得分

  • 有 400400 分的数据中 N<2000N < 2000

样例说明 1

当节点 11 和节点 22 都放有弹珠时,执行第 2 步后,节点 00 会有多个弹珠。此时,这些弹珠会被移除,因此不会放进箱子里。

样例说明 3

请你将答案对 1,000,000,0071,000,000,007 取模后输出。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页