#P10380. 3TRU
3TRU
题目描述
有一个字符串 ,它的所有字符都是不超过 的正整数 之一。
智者想要知道 的具体值,不过尽其一生,他只发现了:
- 有一棵包含 个点的以 为根的有根树 ,已知 的后缀字典树与 同构。
古书上说:所谓后缀字典树,就是由一个字符串的所有非空后缀生成的字典树。
智者发现:由于 的边上并没有标明字符,所以实际上有很多种可能的 ,他希望你告诉他满足条件的 的数量对 取模的结果,并构造一种可能的 。
输入格式
第一行:两个整数 ,分别表示 中的点数和 的字符集大小。
第二行: 个整数 ,其中 表示 中点 的父结点。
输出格式
第一行:一个整数 ,表示满足条件的 的数量对 取模的结果。
第二行:一个整数 ,表示你构造的 的长度。
第三行: 个 中的整数,表示你构造的 。
如果不存在满足条件的 ,则只需在第一行输出 ,后面不用输出。
样例 1 输入
8 2
1 2 3 1 5 6 7
样例 1 输出
4
4
1 2 1 2
样例 1 解释
共有 这四种可能的 ,对应的后缀字典树分别如下图所示:
样例 2 输入
8 2
1 1 2 3 5 5 7
样例 2 输出
0
样例 3 输入
6 4
1 2 3 4 5
样例 3 输出
4
5
3 3 3 3 3
数据范围
对于全部数据:$1\leq n\leq 5\times 10^5,\ 1\leq k\leq 998244352,\ f_i<i$。
子任务编号 | 特殊性质 | 分值 | ||
---|---|---|---|---|
Subtask 1 | 无 | |||
Subtask 2 | 保证有解 | |||
Subtask 3 | ||||
Subtask 4 | 无 | |||
Subtask 5 |
注:保证有解指的是一定存在满足要求的 。