結果
問題 |
No.3117 Reversible Tile
|
ユーザー |
|
提出日時 | 2025-03-31 18:54:01 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 2,052 ms / 3,000 ms |
コード長 | 539 bytes |
コンパイル時間 | 297 ms |
コンパイル使用メモリ | 82,320 KB |
実行使用メモリ | 81,056 KB |
最終ジャッジ日時 | 2025-03-31 21:31:05 |
合計ジャッジ時間 | 28,534 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
N, M = map(int, input().split()) A = list(map(int, input().split())) MOD = 998244353 cnt = 0 f = 0 for i in A: if i != f: cnt += 1 f = i cnt += f dp = [0]*(N+2) dp[cnt] = 1 inv2 = (MOD+1)//2 for _ in range(M): ndp = [0] * (N+2) for i in range(N+2): if i-2 >= 0: ndp[i-2] += (dp[i]*i*(i-1)*inv2) % MOD ndp[i] += (dp[i]*i*(N+1-i)) % MOD if i+2 <= N+1: ndp[i+2] += (dp[i]*(N+1-i)*(N-i)*inv2) % MOD for i in range(N+2): dp[i] = ndp[i] % MOD print(dp[0])