結果
問題 |
No.574 正多面体サイコロ
|
ユーザー |
|
提出日時 | 2021-07-02 01:35:42 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 45 ms / 2,000 ms |
コード長 | 859 bytes |
コンパイル時間 | 220 ms |
コンパイル使用メモリ | 81,996 KB |
実行使用メモリ | 59,008 KB |
最終ジャッジ日時 | 2024-06-28 14:02:17 |
合計ジャッジ時間 | 2,037 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
import sys input = lambda : sys.stdin.readline().rstrip() sys.setrecursionlimit(2*10**5+10) write = lambda x: sys.stdout.write(x+"\n") debug = lambda x: sys.stderr.write(x+"\n") writef = lambda x: print("{:.12f}".format(x)) def sub(x): if x==1: return 1 v = 0 # print(f,x) p = log(1 - (x-1)/f) p1 = log((x-1)/f) if x>1 else 0 # print(x,p,p1) for i in range(k,n+1): v += exp(i*p + (n-i)*p1 + cmb(n,i)) return v f,n,k = list(map(int, input().split())) """数値計算する場合: 対数値を計算する 確率値に戻すときはexpをかませればOK """ from math import log, exp N = n + f + 10 # 必要な最大サイズ g1 = [0] v = 0 for i in range(1, N+1): v += log(i) g1.append(v) def cmb(n,k): return g1[n] - g1[k] - g1[n-k] ans = 0 for x in range(1,f+1): ans += sub(x) print(ans)