atcoder#ABC226F. [ABC226F] Score of Permutations

[ABC226F] Score of Permutations

题目描述

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

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

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

  • 厳密に言い換えると、(1,2, , N) (1,2,\ \dots,\ N) を並び替えた長さ N N の順列全体の集合を SN S_N として

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

    を計算してください。

输入格式

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

N N K K

输出格式

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

题目大意

对于一个排列 p p ,我们记他的权值为 S(p) S(p) ,要求你求出对于 1 1 n n n! n! 种排列的权值的 k k 次方的和。 其中,S(p) S(p) 被定义为如下过程的重复次数:

初始有一个数组 a a 满足 i[1,n] \forall i \in [1,n] ,有 ai=i a_i = i

i[1,n]\forall i \in [1,n]api:=ai a'_{p_i} := a_i

a=aa = a'

如果满足 i[1,n] \forall i \in [1,n] ai=ia_i = i 则结束此流程。

2 2
5
3 3
79
50 10000
77436607

提示

制約

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

Sample Explanation 1

N = 2 N\ =\ 2 のとき P P としてあり得る順列は (1,2),(2,1) (1,2),(2,1) 2 2 つです。 順列 (1,2) (1,2) のスコアは次のように決まります。 - はじめ人 1 1 はボール 1 1 を、人 2 2 はボール 2 2 を持っています。 すぬけ君が 1 1 回目に叫んだ後に、人 1 1 はボール 1 1 を、人 2 2 はボール 2 2 を持っています。 このとき、すべての人が自身の番号と同じ番号が書かれたボールを持っているので、すぬけ君は叫ぶのをやめます。 よってスコアは 1 1 となります。 順列 (2,1) (2,1) のスコアは次のように決まります。 - はじめ人 1 1 はボール 1 1 を、人 2 2 はボール 2 2 を持っています。 すぬけ君が 1 1 回目に叫んだ後に、人 1 1 はボール 2 2 を、人 2 2 はボール 1 1 を持っています。 すぬけ君が 2 2 回目に叫んだ後に、人 1 1 はボール 1 1 を、人 2 2 はボール 2 2 を持っています。 このとき、すべての人が自身の番号と同じ番号が書かれたボールを持っているので、すぬけ君は叫ぶのをやめます。 よってスコアは 2 2 となります。 よって 12 + 22 = 5 1^2\ +\ 2^2\ =\ 5 がこの問題の答えになります。

Sample Explanation 2

すべての順列とスコアの組を列挙すると以下のようになります。 - 順列 : (1,2,3) (1,2,3) , スコア : 1 1 - 順列 : (1,3,2) (1,3,2) , スコア : 2 2 - 順列 : (2,1,3) (2,1,3) , スコア : 2 2 - 順列 : (2,3,1) (2,3,1) , スコア : 3 3 - 順列 : (3,1,2) (3,1,2) , スコア : 3 3 - 順列 : (3,2,1) (3,2,1) , スコア : 2 2 よって $ 1^3\ +\ 2^3\ +\ 2^3\ +\ 3^3\ +\ 3^3\ +\ 2^3\ =\ 79 $ を出力します。