AT_arc086_c.[ARC086E] Smuggling Marbles
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
すぬけ君有一棵有 N+1 个节点的有根树。这棵树的节点编号为 0 到 N,其中节点 0 是根。对于每个 i(1≤i≤N),节点 i 的父节点是 pi。
すぬけ君除了这棵树之外,还用空箱子和弹珠来玩游戏。这个游戏的玩法如下:首先在若干个节点上各放一个弹珠,然后按照以下步骤进行:
- 如果节点 0 上有弹珠,将该弹珠移到箱子里。
- 把所有弹珠从当前节点同时移动到父节点上。
- 对于每个有两个及以上弹珠的节点,将这些弹珠全部移除。
- 如果仍然存在有弹珠的节点,则回到第 1 步,否则游戏结束。
由于每种弹珠的放法有 2N+1 种,请你计算所有情况下游戏结束时箱子中的弹珠数之和,并对 1,000,000,007 取模后输出。
输入格式
输入为一行,格式如下:
N p1 p2 ⋯ pN
输出格式
输出答案。
输入输出样例
输入#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×105
- 0≤pi<i
部分得分
- 有 400 分的数据中 N<2000
样例说明 1
当节点 1 和节点 2 都放有弹珠时,执行第 2 步后,节点 0 会有多个弹珠。此时,这些弹珠会被移除,因此不会放进箱子里。
样例说明 3
请你将答案对 1,000,000,007 取模后输出。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?