CF2070D.Tree Jumps
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一棵包含 n 个顶点的有根树。树中顶点编号为 1 到 n,根为顶点 1。定义 dx 为根到顶点 x 的距离(最短路径上的边数)。
初始时,一个棋子被放置在根节点。你可以执行以下操作任意次(包括零次):
- 将棋子从当前顶点 v 移动到顶点 u,满足 du=dv+1。如果 v 是根节点,可以选择任意满足此约束的顶点 u;但如果 v 不是根节点,则 u 不能是 v 的邻居(即 v 和 u 之间不能有直接边相连)。

例如在上图的树结构中,允许的移动包括:1→2,1→5,2→7,5→3,5→4,3→6,7→6。
如果一个顶点序列满足:存在一种棋子移动方式,使得棋子按顺序恰好访问序列中的所有顶点(且仅这些顶点),则该序列被称为有效的。
你的任务是计算有效顶点序列的数量。由于答案可能很大,请输出其对 998244353 取模的结果。
输入格式
第一行包含一个整数 t(1≤t≤104)——测试用例的数量。
每个测试用例的第一行包含一个整数 n(2≤n≤3⋅105)。
第二行包含 n−1 个整数 p2,p3,…,pn(1≤pi<i),其中 pi 表示第 i 个顶点的父节点。顶点 1 是根节点。
输入额外约束:所有测试用例的 n 之和不超过 3⋅105。
输出格式
对于每个测试用例,输出一个整数——有效顶点序列的数量模 998244353 的结果。
输入输出样例
输入#1
3 4 1 2 1 3 1 2 7 1 2 2 1 4 5
输出#1
4 2 8
说明/提示
第一个示例中,有效序列为:[1],[1,2],[1,4],[1,4,3]。
第二个示例中,有效序列为:[1],[1,2]。
第三个示例中,有效序列为:[1],[1,2],[1,2,7],[1,2,7,6],[1,5],[1,5,3],[1,5,3,6],[1,5,4]。
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?