結果
問題 | No.1846 Good Binary Matrix |
ユーザー |
![]() |
提出日時 | 2022-02-18 23:54:03 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,259 ms / 2,000 ms |
コード長 | 609 bytes |
コンパイル時間 | 227 ms |
コンパイル使用メモリ | 82,252 KB |
実行使用メモリ | 248,052 KB |
最終ジャッジ日時 | 2024-06-29 09:58:26 |
合計ジャッジ時間 | 20,540 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 35 |
ソースコード
def cmb(n, r, mod): if (r < 0) or (n < r): return 0 r = min(r, n-r) return fact[n]*factinv[r]*factinv[n-r]%mod mod = 10**9+7 N = 10**6+100 # N は必要分だけ用意する fact = [1, 1] # fact[n] = (n! mod p) factinv = [1, 1] # factinv[n] = ((n!)^(-1) mod p) inv = [0, 1] # factinv 計算用 for i in range(2, N+1): fact.append((fact[-1]*i)%mod) inv.append((-inv[mod%i]*(mod//i))%mod) factinv.append((factinv[-1]*inv[-1])%mod) h, w = map(int,input().split()) ans = 0 u = 1 for i in range(h+1): ans = (ans + u * cmb(h, i, mod) * pow(pow(2, h-i, mod) - 1, w, mod)) % mod u *= -1 print(ans)