結果
| 問題 |
No.117 組み合わせの数
|
| ユーザー |
|
| 提出日時 | 2015-01-11 17:16:33 |
| 言語 | Python2 (2.7.18) |
| 結果 |
AC
|
| 実行時間 | 4,254 ms / 5,000 ms |
| コード長 | 907 bytes |
| コンパイル時間 | 496 ms |
| コンパイル使用メモリ | 6,912 KB |
| 実行使用メモリ | 142,144 KB |
| 最終ジャッジ日時 | 2024-06-13 03:46:32 |
| 合計ジャッジ時間 | 9,927 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 1 |
ソースコード
import re
def memo(f):
m = []
def memof(arg1,arg2):
for i in range(len(m),arg1+1):m.append(f(i,arg2))
return f(arg1,arg2) if (arg1<0) else m[arg1]
return memof
Inv = memo(lambda m,mod: ((mod-mod/m)*Inv(mod%m,mod))%mod if m>1 else 1 if m>=0 else 0)
Fact = memo(lambda m,mod: (m*Fact(m-1,mod))%mod if m>0 else 1 if m==0 else 0)
Factr = memo(lambda m,mod: (Inv(m,mod)*Factr(m-1,mod))%mod if m>0 else 1 if m==0 else 0)
def combination_len(n,r,mod):
return Fact(n,mod)*Factr(r,mod)%mod*Factr(n-r,mod)%mod
def repeated_combination_len(n,r,mod):
return 1 if n==0 and r==0 else combination_len(n+r-1,r,mod)
def permutation_len(n,r,mod):
return Fact(n,mod)*Factr(n-r,mod)%mod
m={"C":combination_len,"P":permutation_len,"H":repeated_combination_len}
for _ in range(input()):
a,b,c = filter(len,re.split("\(|\)|,",raw_input()))
print(m[a](int(b),int(c),1000000007))