結果
問題 |
No.75 回数の期待値の問題
|
ユーザー |
![]() |
提出日時 | 2016-04-30 17:57:46 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 871 bytes |
コンパイル時間 | 607 ms |
コンパイル使用メモリ | 73,624 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-05 00:10:36 |
合計ジャッジ時間 | 1,229 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 16 |
ソースコード
#include <iostream> #include <vector> #include <algorithm> #include <random> using namespace std; #define RREP(i,s,e) for (i = s; i >= e; i--) #define rrep(i,n) RREP(i,n-1,0) #define REP(i,s,e) for (i = s; i <= e; i++) #define rep(i,n) REP(i,0,n-1) #define INF 100000000 typedef long long ll; int main() { int i, j, k; double dp[201]; double l, r; cin >> k; l = 0; r = 1200; while (l+0.01 < r && l*1.01 < r) { double m = (l+r) / 2; dp[0] = 0; REP (i,1,k) { dp[i] = 0; REP (j,1,6) { if (i-j < 0) dp[i] += m; else dp[i] += dp[i-j]; } dp[i] /= 6; dp[i]++; } if (dp[k] < m) r = m; else l = m; } cout << (r+l)/2 << endl; return 0; }