AT_abc284_g.[ABC284G] Only Once

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个由 11 到 NN 之间的整数构成、长度为 NN 的数列 A=(A1,A2,…,AN)A = (A_1, A_2, \dots, A_N),以及整数 i (1≤i≤N)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
  • Bi,j+1=ABi,j(1≤j<10100)B_{i,j+1} = A_{B_{i,j}} \quad (1 \leq j < 10^{100})

此外,定义 SiS_i 为“数列 BiB_i 中恰好只出现一次的数的种类数”。更严格地说,SiS_i 是满足“存在唯一的 j (1≤j≤10100)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

    4 100000000

    输出#1

    624
  • 输入#2

    7 1000000000

    输出#2

    5817084
  • 输入#3

    2023 998244353

    输出#3

    737481389
  • 输入#4

    100000 353442899

    输出#4

    271798911

说明/提示

限制条件

  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5
  • 108≤M≤10910^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, 2 共 22 个,因此 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。

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

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

样例解释 3

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

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页