結果
問題 | No.76 回数の期待値で練習 |
ユーザー | HIROPON87069639 |
提出日時 | 2016-02-20 23:01:42 |
言語 | Python2 (2.7.18) |
結果 |
MLE
|
実行時間 | - |
コード長 | 1,185 bytes |
コンパイル時間 | 323 ms |
コンパイル使用メモリ | 7,200 KB |
実行使用メモリ | 775,040 KB |
最終ジャッジ日時 | 2024-09-22 12:30:59 |
合計ジャッジ時間 | 7,411 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 19 ms
6,816 KB |
testcase_01 | MLE | - |
ソースコード
# -*- coding: utf-8 -*- import time N = int(input()) tag = [] for i in range(0, N): tag.append(int(input())) tagMAX = max(tag) F = [-1, 0.08333333333333326, 0.16666666666666674, 0.25, 0.0833333333333326, 0.25, 0.1666666666666672] P = [-1, 1, 0.9166666666666667, 0.75, 0.4999999999999998, 0.4166666666666672, 0.1666666666666672] memo = [0, 1.0, 1.083333, 1.256944444, 1.535300920, 1.69159915, 2.05136397] matG = [[0 for j in range(0, tagMAX+10)] for i in range(0, tagMAX)] matG[0][0] = F[1] matG[0][1] = F[2] matG[0][2] = F[3] matG[0][3] = F[4] matG[0][4] = F[5] matG[0][5] = F[6] start = time.time() for i in range(0, tagMAX-1): for j in range(0, tagMAX): for k in range(1, 7): matG[i+1][j+k] += F[k] * matG[i][j] intG = [0 for j in range(0, tagMAX)] #print (time.time() - start) * 1000, "ms" for i in range(0, tagMAX): for j in range(0, tagMAX): intG[i] += (j+1) * matG[j][i] for i in range(0, N): if 6 < tag[i]: ii = tag[i]-1 out = 1 + intG[ii-1] * P[1] + intG[ii-2] * P[2] + intG[ii-3] * P[3] + intG[ii-4] * P[4] out += intG[ii-5] * P[5] + intG[ii-6] * P[6] print out else: print memo[tag[i]]