結果
| 問題 |
No.2457 Stampaholic (Easy)
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-04-09 20:56:08 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 764 ms / 4,000 ms |
| コード長 | 989 bytes |
| コンパイル時間 | 525 ms |
| コンパイル使用メモリ | 82,448 KB |
| 実行使用メモリ | 64,284 KB |
| 最終ジャッジ日時 | 2025-04-09 20:56:46 |
| 合計ジャッジ時間 | 6,994 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 |
ソースコード
MOD = 998244353
def modinv(a):
return pow(a, MOD-2, MOD)
def compute_counts(a, K):
counts = {}
if a >= K:
for x in range(1, K):
counts[x] = 2
counts[K] = a - K + 1
else:
for x in range(1, a):
counts[x] = 2
if a in counts:
counts[a] += (K - a) + 1
else:
counts[a] = (K - a) + 1
return counts
H, W, N, K = map(int, input().split())
a = H - K + 1
b = W - K + 1
dx_counts = compute_counts(a, K)
dy_counts = compute_counts(b, K)
inv_ab = modinv((a % MOD) * (b % MOD) % MOD)
total = 0
for x, cnt_x in dx_counts.items():
x_mod = x % MOD
for y, cnt_y in dy_counts.items():
y_mod = y % MOD
xy = (x_mod * y_mod) % MOD
term = ((a * b - x * y) % MOD) * inv_ab % MOD
pow_term = pow(term, N, MOD)
prob = (1 - pow_term) % MOD
res = (cnt_x * cnt_y) % MOD
res = res * prob % MOD
total = (total + res) % MOD
print(total)
lam6er