AT_abc284_g [ABC284G] Only Once
题目描述
给定一个由 1 到 N 之间的整数构成、长度为 N 的数列 A=(A1,A2,…,AN),以及整数 i (1≤i≤N),定义长度为 10100 的数列 Bi=(Bi,1,Bi,2,…,Bi,10100),其定义如下:
- Bi,1=i
- $B_{i,j+1} = A_{B_{i,j}} \quad (1 \leq j < 10^{100})$
此外,定义 Si 为“数列 Bi 中恰好只出现一次的数的种类数”。更严格地说,Si 是满足“存在唯一的 j (1≤j≤10100) 使得 Bi,j=k”的 k 的个数。
给定整数 N。数列 A 的所有可能情况共有 NN 种。对于所有这些 A,计算 i=1∑NSi,并将其总和对 M 取余,输出结果。
输入格式
输入通过标准输入给出,格式如下:
N M
输出格式
请输出答案的整数值。
输入输出样例 #1
输入 #1
4 100000000
输出 #1
624
输入输出样例 #2
输入 #2
7 1000000000
输出 #2
5817084
输入输出样例 #3
输入 #3
2023 998244353
输出 #3
737481389
输入输出样例 #4
输入 #4
100000 353442899
输出 #4
271798911
说明/提示
限制条件
- 1≤N≤2×105
- 108≤M≤109
- N,M 均为整数
样例解释 1
以 A=(2,3,3,4) 为例:
- 当 i=1 时:B1=(1,2,3,3,3,…),只出现一次的数有 1,2 共 2 个,因此 S1=2。
- 当 i=2 时:B2=(2,3,3,3,…),只出现一次的数为 2,因此 S2=1。
- 当 i=3 时:B3=(3,3,3,…),没有只出现一次的数,因此 S3=0。
- 当 i=4 时:B4=(4,4,4,…),没有只出现一次的数,因此 S4=0。
所以,$\displaystyle\sum_{i=1}^{N} S_i = 2 + 1 + 0 + 0 = 3$。
对其他 255 种 A 也同样计算 i=1∑NSi,所有 256 种情况的总和为 624。
样例解释 3
请输出总和对 M 取余的结果。
由 ChatGPT 4.1 翻译