OUPC2024 Day2 : 北海道大学セット
コンテスト日時
2025/03/16 (Su) 12:00 - 16:00

I - Amidakuji Inversion

Milk
2
s
1024
MB
100

問題文

正整数 $N,K$ と $(1, 2, \ldots, N)$ の順列 $P = (P_1, P_2, \ldots, P_N)$ が与えられます。
順列 $P$ に対して、次の操作をちょうど $K$ 回行います。

  • $1 \leq i \leq N-1$ を満たす整数 $i$ を一様ランダムに選び、$P_i$ と $P_{i+1}$ を入れ替える

$K$ 回の操作が完了した時点での順列 $P$ の転倒数の期待値を$\bmod ~ 998244353$ で求めてください。

順列 $P$ の転倒数とは?

$1 \leq i < j \leq N$ かつ $P_i > P_j$ を満たす整数組 $(i, j)$ の個数を順列 $P$ の転倒数と定義します。

期待値を$\bmod \, 998244353$ で求めるとは?

本問題の制約下において、答えとなる期待値は必ず有理数となることを証明できます。さらに、求める値を互いに素な $2$ つの非負整数 $P, Q$ を用いて $\frac{P}{Q}$ と表したとき、$R \times Q \equiv P\mod 998244353$ かつ $0 \leq R < 998244353$ を満たす整数 $R$ がただ一つ存在することを証明できます。このような $R$ を求めて出力してください。

制約

  • $2 \leq N \leq 300$
  • $1 \leq K \leq 300$
  • $1 \leq P_i \leq N$
  • $(P_1, P_2, \ldots, P_N)$ は $(1, 2, \ldots, N)$ の順列である
  • 入力はすべて整数である

部分点

  • set1 $(10$ 点$)$: $N \leq 7$ かつ $K \leq 50$
  • all $(90$ 点$)$:追加の制約はない

入力

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

$N$ $K$
$P_1$ $P_2$ $\ldots$ $P_N$

出力

答えを出力してください。

入力例 1
3 2 1 2 3
出力例 1
1

$2$ 回の操作が完了した時点で順列 $P$ は、$\dfrac{1}{2}$ の確率で $(1, 2, 3)$、$\dfrac{1}{4}$ の確率で $(2, 3, 1)$、$\dfrac{1}{4}$ の確率で $(3, 1, 2)$ になります。$(1, 2, 3)$ の転倒数は $0$、$(2, 3, 1)$ の転倒数は $2$、$(3, 1, 2)$ の転倒数は $2$ なので、$2$ 回の操作が完了した時点で順列 $P$ の転倒数の期待値は $1$ です。

この入力例は部分点 set1 の制約を満たします。

入力例 2
20 24 3 16 1 20 9 8 14 7 19 6 4 11 13 17 2 5 15 18 10 12
出力例 2
530567411
提出
C++23 (g++ 12.2.0)