AT_abc264_h.[ABC264Ex] Perfect Binary Tree

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

有一棵包含 NN 个顶点的有根树,顶点编号为 1,2,…,N1,2,\dots,N。
根为顶点 11,对于每个顶点 i (≥2)i\ (\ge 2),其父节点为 Pi (<i)P_i\ (< i)。
对于每个整数 k=1,2,…,Nk=1,2,\dots,N,请解答以下问题。

从编号为 11 到 kk 的顶点中,选择若干个顶点(必须包含顶点 11)的方法共有 2k−12^{k-1} 种。
在这些选择方法中,有多少种方式使得所选顶点集合在原树中诱导出的子图的形状是以顶点 11 为根的完全二叉树(即顶点数可以表示为 2d−12^d-1 的某个正整数 dd)?
由于答案可能非常大,请输出对 998244353998244353 取模的结果。

什么是诱导子图?

对于某个图 GG,选出一部分顶点组成集合 SS。由 SS 诱导出的子图 HH 的构造如下:

  • HH 的顶点集合与 SS 相同。
  • 对于 SS 中的每一对顶点 (i,j)(i,j),如果 GG 中存在连接 ii 和 jj 的边,则在 HH 中也添加这条边。

什么是完全二叉树?

完全二叉树是满足以下所有条件的有根树:

  • 除叶子节点外,每个节点恰好有 22 个子节点。
  • 所有叶子节点到根的距离相同。

此外,只有 11 个顶点且没有边的图也视为完全二叉树。

输入格式

输入以如下格式从标准输入读入:

NN P2P_2 P3P_3 …\dots PNP_N

输出格式

输出 NN 行。第 ii 行输出 k=ik=i 时的答案,结果为整数。

输入输出样例

  • 输入#1

    10
    1 1 2 1 2 5 5 5 1

    输出#1

    1
    1
    2
    2
    4
    4
    4
    5
    7
    10
  • 输入#2

    1

    输出#2

    1
  • 输入#3

    10
    1 2 3 4 5 6 7 8 9

    输出#3

    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
  • 输入#4

    13
    1 1 1 2 2 2 3 3 3 4 4 4

    输出#4

    1
    1
    2
    4
    4
    4
    4
    4
    7
    13
    13
    19
    31

说明/提示

限制条件

  • 所有输入均为整数。
  • 1≤N≤3×1051 \le N \le 3 \times 10^5
  • 1≤Pi<i1 \le P_i < i

样例解释 1

  • 当 k≥1k \ge 1 时,{1}\{1\}
  • 当 k≥3k \ge 3 时,{1,2,3}\{1,2,3\}
  • 当 k≥5k \ge 5 时,{1,2,5},{1,3,5}\{1,2,5\},\{1,3,5\}
  • 当 k≥8k \ge 8 时,{1,2,4,5,6,7,8}\{1,2,4,5,6,7,8\}
  • 当 k≥9k \ge 9 时,{1,2,4,5,6,7,9},{1,2,4,5,6,8,9}\{1,2,4,5,6,7,9\},\{1,2,4,5,6,8,9\}
  • 当 k=10k=10 时,{1,2,10},{1,3,10},{1,5,10}\{1,2,10\},\{1,3,10\},\{1,5,10\} 是需要计数的顶点选择方式。

样例解释 2

当 N=1N=1 时,输入的第 2 行为空行。

由 ChatGPT 4.1 翻译

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

首页