結果

問題 No.66 輝け☆全国たこやき杯
ユーザー tktk_snsntktk_snsn
提出日時 2020-12-21 17:17:52
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 100 ms / 5,000 ms
コード長 515 bytes
コンパイル時間 225 ms
コンパイル使用メモリ 81,996 KB
実行使用メモリ 88,868 KB
最終ジャッジ日時 2024-09-21 13:00:51
合計ジャッジ時間 1,436 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 10
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
input = sys.stdin.readline

def win(si, sj):
    return si * si / (si * si + sj * sj)


M = int(input())
N = 1 << M
S = [int(input()) for _ in range(N)]

dp = [1] * N
op = [[i] for i in range(N)]
for i in range(M):
    dp_nxt = [0] * N
    for x in range(N):
        P = 0.
        opponent = op[x].copy()
        for y in opponent:
            y ^= (1 << i)
            P += win(S[x], S[y]) * dp[y]
            op[x].append(y)
        dp_nxt[x] = dp[x] * P
    dp = dp_nxt

print("{:.9f}".format(dp[0]))
0