#ABC226F. 排列的分数

排列的分数

排列的分数

题目描述

对于 (1,2,,N)(1,2,\dots,N) 的一个排列 P=(p1,p2,,pN)P = (p_1, p_2, \dots, p_N),如下定义 PP 的分数 S(P)S(P)

NN 个人,编号为 1,2,,N1, 2, \dots, N。此外,Snuke 也在场。初始时,第 ii 个人(1iN1 \le i \le N)拿着球 ii

每次 Snuke 大喊时,所有满足 ipii \neq p_i 的第 ii 个人会同时把自己的球交给第 pip_i 个人。

如果在大喊至少一次之后,每个人 ii 都拿着自己的球 ii,Snuke 就停止大喊。

分数是 Snuke 在停止前大喊的次数。这里保证分数一定是有限值。

(1,2,,N)(1,2,\dots,N) 共有 N!N! 个排列 PP。求所有排列的分数 S(P)S(P)KK 次方之和,对 998244353998244353 取模。

形式化地说,设 SNS_N(1,2,,N)(1,2,\dots,N) 的所有排列的集合,计算下式:

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

输入格式

输入按以下格式从标准输入给出:

NN KK

输出格式

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

样例

2 2
5

N=2N = 2 时,可能的排列 PP(1,2)(1,2)(2,1)(2,1) 两个。

排列 (1,2)(1,2) 的分数求解如下。

初始时,第 11 个人拿着球 11,第 22 个人拿着球 22

在 Snuke 第一次大喊之后,第 11 个人拿着球 11,第 22 个人拿着球 22

此时每个人都拿着自己的球 ii,所以他停止大喊。

因此,分数是 11

排列 (2,1)(2,1) 的分数求解如下。

初始时,第 11 个人拿着球 11,第 22 个人拿着球 22

在 Snuke 第一次大喊之后,第 11 个人拿着球 22,第 22 个人拿着球 11

在 Snuke 第二次大喊之后,第 11 个人拿着球 11,第 22 个人拿着球 22

此时每个人都拿着自己的球 ii,所以他停止大喊。

因此,分数是 22

因此,本题的答案是 12+22=51^2 + 2^2 = 5

3 3
79

所有排列及其分数如下。

(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

50 10000
77436607

数据范围

  • 2N502 \le N \le 50
  • 1K1041 \le K \le 10^4
  • 输入中的所有值均为整数。
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
2690
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签