結果

問題 No.1846 Good Binary Matrix
ユーザー shobonvipshobonvip
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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