結果

問題 No.2130 分配方法の数え上げ mod 998244353
ユーザー H20
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

# 二項係数

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)
0