結果
問題 | No.76 回数の期待値で練習 |
ユーザー | scache |
提出日時 | 2014-12-10 20:00:43 |
言語 | Java21 (openjdk 21) |
結果 |
AC
|
実行時間 | 170 ms / 5,000 ms |
コード長 | 908 bytes |
コンパイル時間 | 2,780 ms |
コンパイル使用メモリ | 77,760 KB |
実行使用メモリ | 49,372 KB |
最終ジャッジ日時 | 2024-06-11 20:32:40 |
合計ジャッジ時間 | 3,597 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 170 ms
49,372 KB |
testcase_01 | AC | 167 ms
49,236 KB |
ソースコード
import java.util.Arrays; import java.util.Scanner; public class Main76 { public static void main(String[] args) { Main76 p = new Main76(); } public Main76() { solve(); } public void solve() { double[] p = new double[7]; double[] dp = new double[1000010]; dp[1] = 1.0000000000000000; dp[2] = 1.0833333333333333; dp[3] = 1.2569444444444444; dp[4] = 1.5353009259259260; dp[5] = 1.6915991512345676; dp[6] = 2.0513639724794235; double s = 0; for(int i=1;i<=6;i++){ double r = dp[i]-1; for(int j=i;j>0;j--) r -= dp[j]*p[i-j]; p[i-1] = r; s+=r; } p[6] = 1.0-s; for(int i=7;i<dp.length-6;i++){ for(int j=0;j<6;j++) dp[i] += dp[i-j-1]*p[j+1]; dp[i]+=1.0; } Scanner sc = new Scanner(System.in); int t = sc.nextInt(); for(int i=0;i<t;i++) System.out.println(dp[sc.nextInt()]); } }