結果
問題 |
No.3117 Reversible Tile
|
ユーザー |
|
提出日時 | 2025-03-31 19:03:51 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 2,196 ms / 3,000 ms |
コード長 | 573 bytes |
コンパイル時間 | 247 ms |
コンパイル使用メモリ | 82,472 KB |
実行使用メモリ | 83,060 KB |
最終ジャッジ日時 | 2025-03-31 21:52:12 |
合計ジャッジ時間 | 31,282 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
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] = (ndp[i-2]+dp[i]*i*(i-1)*inv2) % 998244353 ndp[i] = (ndp[i]+dp[i]*i*(N+1-i)) % 998244353 if i+2 <= N+1: ndp[i+2] = (ndp[i+2]+dp[i]*(N+1-i)*(N-i)*inv2) % 998244353 for i in range(N+2): dp[i] = ndp[i] print(dp[0])