E. [R10E]知识点学习2

    Type: Default 1000ms 512MiB

[R10E]知识点学习2

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

时空限制

1S/512M

题目描述

nn 个知识点,编号从 11nn,想学习知识点 ii,必须先学习知识点 pip_i,我们称 pip_iii 的前置知识点。保证 pi<ip_i< i,如果 pi=0p_i=0 说明知识点 ii 可以直接学习。

定义合法的学习方案为学习完这 nn 个知识点的顺序,满足知识点 pip_i 在知识点 ii 前学习。

求一共有多少种合法的学习方案,对 998244353998244353 取模。

格式

输入格式

第一行包含一个整数 nn 表示知识点的数量。

第二行包含 nn 个整数 pip_i,分别表示每个知识点的前置知识点。

输出格式

输出一个整数表示合法的学习方案的数量,对 998244353998244353 取模。

样例

样例输入 #1

4
0 1 0 2 

样例输出 #1

4

样例解释 #1

合法的学习方案有 44 种:{1,2,3,4}\{1,2,3,4\}{1,2,4,3}\{1,2,4,3\}{1,3,2,4}\{1,3,2,4\}{3,1,2,4}\{3,1,2,4\}

样例输入 #2

6
0 1 0 3 1 5

样例输出 #2

45

数据规模

对于 20%20\% 的数据, n10n\leq 10

对于 60%60\% 的数据, n5000n\leq 5000

另有 10%10\% 的数据, pi=i2p_i=\lfloor\frac{i}{2}\rfloor

对于 100%100\% 的数据, 1n1061\leq n\leq 10^60pi<i0\leq p_i< i

代码源挑战赛 Round 10

Not Attended
Status
Done
Rule
DMY
Problem
6
Start at
2025-5-2 20:00
End at
2025-5-2 21:30
Duration
1.5 hour(s)
Host
Partic.
472