#aBC226F. [ABC226F] Score of Permutations

[ABC226F] Score of Permutations

AT_abc226_f [ABC226F] Score of Permutations

题目描述

给定一个长度为 NN 的排列 P=(p1,p2,,pN)P = (p_1, p_2, \dots, p_N),它是 1,2,,N1,2,\dots,N 的一个排列。定义排列 PP 的分数 S(P)S(P) 如下:

  • NN 个人和すぬけ君,这 NN 个人编号为 1,2,,N1,2,\dots,N。一开始,第 ii 个人(1iN1 \leq i \leq N)手里拿着编号为 ii 的球。 每当すぬけ君喊叫一次,所有满足 ipii \neq p_i 的人 ii 会同时把自己手里的球传给第 pip_i 个人。 当すぬけ君喊叫至少一次后,所有人 ii 都拿回了编号为 ii 的球时,すぬけ君就会停止喊叫。 すぬけ君喊叫的总次数就是该排列的分数。保证分数一定是有限的。

所有可能的 PPN!N! 种。请计算所有排列的分数的 KK 次幂之和对 998244353998244353 取模的结果。

  • 更严格地说,设所有 1,2,,N1,2,\dots,N 的排列的集合为 SNS_N,则需计算

    $$\left(\sum_{P \in S_N} S(P)^K \right) \bmod 998244353$$

输入格式

输入为一行,包含两个整数。

NN KK

输出格式

输出 $\left(\sum_{P \in S_N} S(P)^K \right) \bmod 998244353$ 的值。

输入输出样例 #1

输入 #1

2 2

输出 #1

5

输入输出样例 #2

输入 #2

3 3

输出 #2

79

输入输出样例 #3

输入 #3

50 10000

输出 #3

77436607

说明/提示

数据范围

  • 2N502 \leq N \leq 50
  • 1K1041 \leq K \leq 10^4
  • 输入均为整数。

样例解释 1

N=2N=2 时,所有可能的排列为 (1,2)(1,2)(2,1)(2,1) 共两种。排列 (1,2)(1,2) 的分数如下:

  • 一开始,第 11 个人拿着球 11,第 22 个人拿着球 22。 すぬけ君第一次喊叫后,第 11 个人仍然拿着球 11,第 22 个人仍然拿着球 22。 此时所有人都拿回了自己编号的球,すぬけ君停止喊叫。分数为 11。 排列 (2,1)(2,1) 的分数如下:
  • 一开始,第 11 个人拿着球 11,第 22 个人拿着球 22。 すぬけ君第一次喊叫后,第 11 个人拿着球 22,第 22 个人拿着球 11。 すぬけ君第二次喊叫后,第 11 个人拿着球 11,第 22 个人拿着球 22。 此时所有人都拿回了自己编号的球,すぬけ君停止喊叫。分数为 22。 因此 12+22=51^2 + 2^2 = 5,这就是本题的答案。

样例解释 2

枚举所有排列及其分数如下:

  • 排列: (1,2,3)(1,2,3),分数: 11
  • 排列: (1,3,2)(1,3,2),分数: 22
  • 排列: (2,1,3)(2,1,3),分数: 22
  • 排列: (2,3,1)(2,3,1),分数: 33
  • 排列: (3,1,2)(3,1,2),分数: 33
  • 排列: (3,2,1)(3,2,1),分数: 22 因此 13+23+23+33+33+23=791^3 + 2^3 + 2^3 + 3^3 + 3^3 + 2^3 = 79,输出 7979

由 ChatGPT 4.1 翻译