AT_abc226_f [ABC226F] Score of Permutations

题目描述

给定一个长度为 $N$ 的排列 $P = (p_1, p_2, \dots, p_N)$,它是 $1,2,\dots,N$ 的一个排列。定义排列 $P$ 的分数 $S(P)$ 如下: - 有 $N$ 个人和すぬけ君,这 $N$ 个人编号为 $1,2,\dots,N$。一开始,第 $i$ 个人($1 \leq i \leq N$)手里拿着编号为 $i$ 的球。 每当すぬけ君喊叫一次,所有满足 $i \neq p_i$ 的人 $i$ 会同时把自己手里的球传给第 $p_i$ 个人。 当すぬけ君喊叫至少一次后,所有人 $i$ 都拿回了编号为 $i$ 的球时,すぬけ君就会停止喊叫。 すぬけ君喊叫的总次数就是该排列的分数。保证分数一定是有限的。 所有可能的 $P$ 有 $N!$ 种。请计算所有排列的分数的 $K$ 次幂之和对 $998244353$ 取模的结果。 - 更严格地说,设所有 $1,2,\dots,N$ 的排列的集合为 $S_N$,则需计算 $$ \left(\sum_{P \in S_N} S(P)^K \right) \bmod 998244353 $$

输入格式

输入为一行,包含两个整数。 > $N$ $K$

输出格式

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

说明/提示

### 数据范围 - $2 \leq N \leq 50$ - $1 \leq K \leq 10^4$ - 输入均为整数。 ### 样例解释 1 当 $N=2$ 时,所有可能的排列为 $(1,2)$ 和 $(2,1)$ 共两种。排列 $(1,2)$ 的分数如下: - 一开始,第 $1$ 个人拿着球 $1$,第 $2$ 个人拿着球 $2$。 すぬけ君第一次喊叫后,第 $1$ 个人仍然拿着球 $1$,第 $2$ 个人仍然拿着球 $2$。 此时所有人都拿回了自己编号的球,すぬけ君停止喊叫。分数为 $1$。 排列 $(2,1)$ 的分数如下: - 一开始,第 $1$ 个人拿着球 $1$,第 $2$ 个人拿着球 $2$。 すぬけ君第一次喊叫后,第 $1$ 个人拿着球 $2$,第 $2$ 个人拿着球 $1$。 すぬけ君第二次喊叫后,第 $1$ 个人拿着球 $1$,第 $2$ 个人拿着球 $2$。 此时所有人都拿回了自己编号的球,すぬけ君停止喊叫。分数为 $2$。 因此 $1^2 + 2^2 = 5$,这就是本题的答案。 ### 样例解释 2 枚举所有排列及其分数如下: - 排列: $(1,2,3)$,分数: $1$ - 排列: $(1,3,2)$,分数: $2$ - 排列: $(2,1,3)$,分数: $2$ - 排列: $(2,3,1)$,分数: $3$ - 排列: $(3,1,2)$,分数: $3$ - 排列: $(3,2,1)$,分数: $2$ 因此 $1^3 + 2^3 + 2^3 + 3^3 + 3^3 + 2^3 = 79$,输出 $79$。 由 ChatGPT 4.1 翻译