QOJ.ac

QOJ

Límite de tiempo: 6 s Límite de memoria: 512 MB Puntuación total: 100

#8843. 速通

Estadísticas

《Infinite Chronicle -Princess Castle-》是一款简单的角色扮演游戏。游戏共有 $n+1$ 个检查点,编号为 $0$ 到 $n$。对于每个 $i = 1, 2, \dots, n$,都有一条从检查点 $i-1$ 到 $i$ 的单向道路。游戏从检查点 $0$ 开始,在检查点 $n$ 结束。道路上会出现邪恶怪物,英雄需要与它们战斗。你可以在任何检查点保存游戏进度;如果你输掉了一场战斗,可以从上一次保存的检查点重新开始游戏。游戏开始时,进度会自动在检查点 $0$ 保存,且不消耗时间。

兔子 Hanako 很喜欢这款游戏,现在她对速通(speedrunning)很感兴趣。尽管 Hanako 是游戏高手,但由于随机因素,她并不能总是赢得战斗。对于每个 $i$,她估计了赢得从检查点 $i-1$ 到 $i$ 道路上所有战斗的概率 $p_i$。每次她从检查点 $i-1$ 出发,经过恰好一分钟后,她将以概率 $p_i$ 到达检查点 $i$,并以概率 $1 - p_i$ 回到她上一次保存进度的地方。

令 Hanako 感到困惑的是,在检查点保存进度也需要一分钟(!),因此为了快速通关,跳过某些检查点不保存可能是一个好主意。任务是计算完成游戏所需的最短期望时间。

输入格式

输入包含多组数据。数据集的数量不超过 $50$ 个。每个数据集包含两行:第一行包含一个整数 $n$ ($1 \le n \le 10^5$),表示道路的数量;第二行包含 $n$ 个数字 $p_1, p_2, \dots, p_n$ ($0 < p_i \le 1$),表示获胜概率。每个 $p_i$ 小数点后恰好有两位数字。输入结束标志为仅包含一个零的行。

输出格式

对于每个数据集,输出完成游戏所需的最短期望时间(以分钟为单位),相对误差不超过 $10^{-8}$。

样例

样例输入 1

2
0.50 0.40
2
0.70 0.60
4
0.99 1.00 1.00 0.01
0

样例输出 1

5.5000000000
4.0476190476
104.0101010101

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.