結果
問題 |
No.2130 分配方法の数え上げ mod 998244353
|
ユーザー |
![]() |
提出日時 | 2022-11-25 21:36:19 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 512 bytes |
コンパイル時間 | 330 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 88,704 KB |
最終ジャッジ日時 | 2024-10-02 04:11:00 |
合計ジャッジ時間 | 4,382 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 RE * 18 |
ソースコード
# 二項係数 mod = 998244353 fac = [1, 1] finv = [1, 1] inv = [0, 1] def init(n): for i in range(2, n + 1): fac.append(fac[-1] * i % mod) inv.append(-inv[mod % i] * (mod // i) % mod) finv.append(finv[-1] * inv[-1] % mod) def com(n, k, mod): if n < 0 or k < 0 or n < k: return 0 return fac[n] * (finv[k] * finv[n - k] % mod) % mod init(10**5+10) N = int(input()) M = int(input()) ans = pow(2,N,mod) for i in range(M): ans = (ans-com(N,i,mod))%mod print(ans)