結果
問題 |
No.352 カード並べ
|
ユーザー |
|
提出日時 | 2025-08-11 11:36:11 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 40 ms / 2,000 ms |
コード長 | 775 bytes |
コンパイル時間 | 607 ms |
コンパイル使用メモリ | 82,108 KB |
実行使用メモリ | 57,928 KB |
最終ジャッジ日時 | 2025-08-11 11:36:13 |
合計ジャッジ時間 | 1,147 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 6 |
ソースコード
def solve(): n = int(input()) ans = 0.0 # 第1张和第2张卡片的成本都是1 ans += 1 # 卡片1 if n >= 2: ans += 1 # 卡片2 # 从第3张卡片开始计算期望成本 for i in range(3, n + 1): p = 0 # 所有可能相邻对乘积的总和 q = 0 # 相邻对的总数量 # 计算所有可能的相邻数字对的乘积 for a in range(1, i): for b in range(a + 1, i): p += a * b q += 1 # 计算第i张卡片的期望成本 # 公式:(2 + 平均中间成本 * 中间位置数) / 总位置数 expected_cost = (2 + (p / q) * (i - 2)) / i ans += expected_cost print(f"{ans:.10f}") solve()