atcoder#ABC226F. [ABC226F] Score of Permutations

[ABC226F] Score of Permutations

配点 : 500500

問題文

(1,2,,N)(1,2, \dots, N) を並び替えた長さ NN の順列 P=(p1,p2,,pN)P = (p_1, p_2, \dots, p_N) に対して、 PP のスコア S(P)S(P) を次のように定めます。

  • NN 人の人とすぬけ君がいて、NN 人の人には 1,2,,N1,2,\dots,N の番号がついています。はじめ、人 ii (1iN)(1 \leq i \leq N) はボール ii を持っています。 すぬけ君が叫ぶたびに、ipii \neq p_i であるようなすべての人 ii は人 pip_i に持っているボールを同時に渡します。 すぬけ君は、11 回以上叫んだ後にすべての人 ii がボール ii を持っている状態になると叫ぶのをやめます。 すぬけ君が叫ぶのをやめるまでに叫んだ回数が順列のスコアとなります。ここでスコアは有限の値を取ることが保証されます。

PP としてあり得るものは N!N! 通りありますが、それらのスコアを KK 乗した値の総和を 998244353998244353 で割ったあまりを計算してください。

  • 厳密に言い換えると、(1,2,,N)(1,2, \dots, N) を並び替えた長さ NN の順列全体の集合を SNS_N として $\displaystyle \left(\sum_{P \in S_N} S(P)^K \right) \bmod {998244353}$ を計算してください。

制約

  • 2N502 \leq N \leq 50
  • 1K1041 \leq K \leq 10^4
  • 入力はすべて整数である。

入力

入力は以下の形式で標準入力から与えられる。

NN KK

出力

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

2 2
5

N=2N = 2 のとき PP としてあり得る順列は (1,2),(2,1)(1,2),(2,1)22 つです。

順列 (1,2)(1,2) のスコアは次のように決まります。

  • はじめ人 11 はボール 11 を、人 22 はボール 22 を持っています。 すぬけ君が 11 回目に叫んだ後に、人 11 はボール 11 を、人 22 はボール 22 を持っています。 このとき、すべての人が自身の番号と同じ番号が書かれたボールを持っているので、すぬけ君は叫ぶのをやめます。 よってスコアは 11 となります。

順列 (2,1)(2,1) のスコアは次のように決まります。

  • はじめ人 11 はボール 11 を、人 22 はボール 22 を持っています。 すぬけ君が 11 回目に叫んだ後に、人 11 はボール 22 を、人 22 はボール 11 を持っています。 すぬけ君が 22 回目に叫んだ後に、人 11 はボール 11 を、人 22 はボール 22 を持っています。 このとき、すべての人が自身の番号と同じ番号が書かれたボールを持っているので、すぬけ君は叫ぶのをやめます。 よってスコアは 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