結果
問題 |
No.420 mod2漸化式
|
ユーザー |
|
提出日時 | 2021-03-13 18:56:55 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 47 ms / 1,000 ms |
コード長 | 852 bytes |
コンパイル時間 | 469 ms |
コンパイル使用メモリ | 81,956 KB |
実行使用メモリ | 55,424 KB |
最終ジャッジ日時 | 2024-10-15 09:18:37 |
合計ジャッジ時間 | 3,066 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 35 |
ソースコード
def combination(n, r, MOD=10**9+7): """ O(r) """ if not 0 <= r <= n: return 0 r = min(r, n - r) numerator = reduce(lambda x, y: x * y % MOD, range(n, n - r, -1), 1) denominator = reduce(lambda x, y: x * y % MOD, range(1, r + 1), 1) return numerator * pow(denominator, MOD - 2, MOD) % MOD def combination2(n, r): """ O(r) """ if not 0 <= r <= n: return 0 r = min(r, n - r) numerator = reduce(lambda x, y: x * y, range(n, n - r, -1), 1) denominator = reduce(lambda x, y: x * y, range(1, r + 1), 1) return numerator // denominator ############################################################################################## import sys input = sys.stdin.readline from functools import reduce x=int(input()) S=combination2(31,x) T=0 C=combination2(30,x-1) for i in range(31): T+=C*(1<<i) print(S,T)