結果
問題 | No.2130 分配方法の数え上げ mod 998244353 |
ユーザー | rosso01 |
提出日時 | 2022-11-25 21:38:05 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 71 ms / 2,000 ms |
コード長 | 399 bytes |
コンパイル時間 | 174 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 79,360 KB |
最終ジャッジ日時 | 2024-10-02 04:13:28 |
合計ジャッジ時間 | 2,793 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 38 |
ソースコード
mod = 998244353 N=int(input()) M=int(input()) fac = [1] for i in range(1,M+5): fac.append(fac[-1]*i%mod) invfac = [1]*(M+5) invfac[M+4] = pow(fac[M+4],mod-2,mod) for i in range(M+3,0,-1): invfac[i] = invfac[i+1]*(i+1)%mod ans = pow(2,N,mod)-1 if M > 1: num = N ans -= num ans %= mod for i in range(2,M): num *= N-i+1 num %= mod ans -= num * invfac[i] ans %= mod print(ans)