#P2327. Dumb Bones

Dumb Bones

题目描述

你正在尝试将一系列多米诺骨牌竖直排列成一条直线,以便稍后推倒它们以获得乐趣。(虽然搭建好又推倒看起来毫无意义,但你有些奇怪的爱好)然而,摆放多米诺骨牌的关键在于:如果在放置时不小心碰倒某一张骨牌,它会连带推倒与其相邻的一侧连续排列的所有骨牌,从而部分破坏你的成果。

例如,若当前已摆放的骨牌模式为 DD__DxDDD_D,当你尝试在位置 x 放置一张骨牌时,它可能会向左倒推倒左侧的 11 张骨牌,或向右倒推倒右侧的 33 张骨牌,迫使你重新摆放这些骨牌。

虽然人为错误难以完全避免,但你可以通过优化摆放策略,使得骨牌更倾向于向某一侧倒下,从而降低平均需要摆放的次数。

给定待摆放的骨牌数量 nn1n10001 \leq n \leq 1000),以及每张骨牌在放置时向左(PlP_l)或向右(PrP_r)倒下的概率(满足 0<Pl+Pr0.50 < P_l + P_r \leq 0.5),请计算在最优策略下,完成摆放所需的平均骨牌放置次数(保留两位小数)。

输入格式

  • 输入包含最多 100100 个测试用例。
  • 每个用例占一行,包含三个值:nn(骨牌数量)、PlP_l(向左倒概率)、PrP_r(向右倒概率)。
  • 输入以一行单独的 00 结束。

输出格式

  • 对于每个用例,输出完成摆放的平均次数,保留两位小数。

示例分析

输入数据 1

10 0.25 0.25
10 0.1 0.4
10 0.0 0.5
0

输出数据 1

46.25
37.28
20.00

解释

  1. 第一组数据
    • n=10n=10Pl=0.25P_l=0.25Pr=0.25P_r=0.25
    • 平均需要 46.2546.25 次摆放。
  2. 第二组数据
    • n=10n=10Pl=0.1P_l=0.1Pr=0.4P_r=0.4
    • 由于向右倒概率更高,优化策略后平均次数降至 37.2837.28
  3. 第三组数据
    • n=10n=10Pl=0.0P_l=0.0Pr=0.5P_r=0.5
    • 骨牌仅会向右倒,最优策略下平均次数为 20.0020.00