結果
問題 | No.76 回数の期待値で練習 |
ユーザー | ふーらくたる |
提出日時 | 2016-08-15 07:54:25 |
言語 | C++11 (gcc 11.4.0) |
結果 |
RE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 713 bytes |
コンパイル時間 | 763 ms |
コンパイル使用メモリ | 73,156 KB |
実行使用メモリ | 11,008 KB |
最終ジャッジ日時 | 2024-11-07 16:56:07 |
合計ジャッジ時間 | 1,922 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ソースコード
#include <iostream> #include <map> #include <iomanip> #include <cstring> using namespace std; const int MAX_N = 1000010; double value[MAX_N]; map<int, double> prob = { {1, 1.0/12.0}, {2, 1.0/6.0}, {3, 1.0/4.0}, {4, 1.0/12.0}, {5, 1.0/4.0}, {6, 1.0/6.0} }; int main() { int t; cin >> t; memset(value, 0.0, sizeof(value)); for (int sum = 1; sum <= MAX_N; sum++) { value[sum] = 1.0; for (int d = 1; d <= 6; d++) { int prev = max(0, sum - d); value[sum] += value[prev] * prob[d]; } } while (t--) { int n; cin >> n; cout << fixed << setprecision(10) << value[n] << endl; } return 0; }