有人认为哄婴儿入睡是一门艺术,但本题将展示这纯粹是数学。
设想一个夜晚,一位家长正试图哄婴儿入睡。闹钟将在夜晚结束时响起,家长不允许更改闹钟时间,因此从现在起夜晚的长度固定为 $k$ 小时。
婴儿可以处于以下三种状态之一:状态 0 表示婴儿醒着,状态 1 表示婴儿处于浅睡眠,状态 2 表示婴儿处于深睡眠。婴儿初始时处于状态 0,状态的变化是连续发生而非离散发生的。给你三个数 $p_0$、$p_1$ 和 $p_2$。每当婴儿处于状态 $i$ 时,在接下来的 $x$ 小时内不发生状态变化的概率为 $p_i^x$,其中 $x$ 是一个正实数。换句话说,距离下一次状态变化的时间是从累积分布函数为 $1 - p_i^x$ 的指数分布中抽取的。
每当状态发生变化时:如果婴儿之前处于状态 0,它总是会切换到状态 1;如果婴儿之前处于状态 2,它也总是会切换到状态 1;如果婴儿之前处于状态 1,它将有 $q_0$ 的概率切换到状态 0,有 $1 - q_0$ 的概率切换到状态 2。
家长自己决定什么时候去睡觉。然而,如果婴儿处于状态 0,它会哭闹并吵醒家长,因此家长只有在婴儿处于状态 1 或 2 时才能入睡。即使婴儿处于这些状态之一,家长也可以选择继续保持清醒。如果他们保持清醒,他们可以:
- 观察婴儿处于三种状态中的哪一种;
- 防止婴儿醒来:如果婴儿根据上述规则决定从状态 1 切换到状态 0,且家长此时未入睡,那么婴儿会得到安抚,并继续保持在状态 1。
家长可以任意决定何时去睡觉,例如根据婴儿当前的状态或当前的时间来做出决定。然而,一旦他们入睡,他们将一直保持睡眠状态,直到婴儿醒来(进入状态 0)或 $k$ 小时结束时闹钟响起。如果他们因为婴儿醒来而被吵醒,他们之后可以再次任意决定何时去睡觉。
如果家长以最优的方式决定何时去睡觉,他们能获得的最大期望睡眠小时数是多少?
输入格式
输入的第一行包含一个整数 $t$ ($1 \le t \le 1000$) —— 测试用例的数量。
接下来的 $t$ 行描述测试用例,每行包含五个小数点后恰好有一位数字的浮点数,顺序如下:$k$, $p_0$, $p_1$, $p_2$, $q_0$ ($0.1 \le k \le 10$;$0.1 \le p_0, p_1, p_2, q_0 \le 0.9$)。
输出格式
输出 $t$ 行,每行包含一个浮点数 —— 每个测试用例的最大期望睡眠时间。如果你的输出与标准答案的绝对误差在 $10^{-9}$ 以内,则被认为是正确的。
样例
输入样例 1
2 10.0 0.5 0.5 0.5 0.5 8.0 0.1 0.9 0.9 0.1
输出样例 1
6.5990202123649855 7.540407031059442