#aBC284G. [ABC284G] Only Once

[ABC284G] Only Once

AT_abc284_g [ABC284G] Only Once

题目描述

给定一个由 11NN 之间的整数构成、长度为 NN 的数列 A=(A1,A2,,AN)A = (A_1, A_2, \dots, A_N),以及整数 i (1iN)i\ (1 \leq i \leq N),定义长度为 1010010^{100} 的数列 Bi=(Bi,1,Bi,2,,Bi,10100)B_i = (B_{i,1}, B_{i,2}, \dots, B_{i,10^{100}}),其定义如下:

  • Bi,1=iB_{i,1} = i
  • $B_{i,j+1} = A_{B_{i,j}} \quad (1 \leq j < 10^{100})$

此外,定义 SiS_i 为“数列 BiB_i 中恰好只出现一次的数的种类数”。更严格地说,SiS_i 是满足“存在唯一的 j (1j10100)j\ (1 \leq j \leq 10^{100}) 使得 Bi,j=kB_{i,j} = k”的 kk 的个数。

给定整数 NN。数列 AA 的所有可能情况共有 NNN^N 种。对于所有这些 AA,计算 i=1NSi\displaystyle\sum_{i=1}^{N} S_i,并将其总和对 MM 取余,输出结果。

输入格式

输入通过标准输入给出,格式如下:

NN MM

输出格式

请输出答案的整数值。

输入输出样例 #1

输入 #1

4 100000000

输出 #1

624

输入输出样例 #2

输入 #2

7 1000000000

输出 #2

5817084

输入输出样例 #3

输入 #3

2023 998244353

输出 #3

737481389

输入输出样例 #4

输入 #4

100000 353442899

输出 #4

271798911

说明/提示

限制条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 108M10910^8 \leq M \leq 10^9
  • N,MN, M 均为整数

样例解释 1

A=(2,3,3,4)A = (2, 3, 3, 4) 为例:

  • i=1i=1 时:B1=(1,2,3,3,3,)B_1 = (1, 2, 3, 3, 3, \dots),只出现一次的数有 1,21, 222 个,因此 S1=2S_1 = 2
  • i=2i=2 时:B2=(2,3,3,3,)B_2 = (2, 3, 3, 3, \dots),只出现一次的数为 22,因此 S2=1S_2 = 1
  • i=3i=3 时:B3=(3,3,3,)B_3 = (3, 3, 3, \dots),没有只出现一次的数,因此 S3=0S_3 = 0
  • i=4i=4 时:B4=(4,4,4,)B_4 = (4, 4, 4, \dots),没有只出现一次的数,因此 S4=0S_4 = 0

所以,$\displaystyle\sum_{i=1}^{N} S_i = 2 + 1 + 0 + 0 = 3$。

对其他 255255AA 也同样计算 i=1NSi\displaystyle\sum_{i=1}^{N} S_i,所有 256256 种情况的总和为 624624

样例解释 3

请输出总和对 MM 取余的结果。

由 ChatGPT 4.1 翻译