CF1543C.Need for Pink Slips
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
After defeating a Blacklist Rival, you get a chance to draw 1 reward slip out of x hidden valid slips. Initially, x=3 and these hidden valid slips are Cash Slip, Impound Strike Release Marker and Pink Slip of Rival's Car. Initially, the probability of drawing these in a random guess are c, m, and p, respectively. There is also a volatility factor v. You can play any number of Rival Races as long as you don't draw a Pink Slip. Assume that you win each race and get a chance to draw a reward slip. In each draw, you draw one of the x valid items with their respective probabilities. Suppose you draw a particular item and its probability of drawing before the draw was a. Then,
- If the item was a Pink Slip, the quest is over, and you will not play any more races.
- Otherwise,
- If a≤v, the probability of the item drawn becomes 0 and the item is no longer a valid item for all the further draws, reducing x by 1. Moreover, the reduced probability a is distributed equally among the other remaining valid items.
- If a>v, the probability of the item drawn reduces by v and the reduced probability is distributed equally among the other valid items.
For example,
- If (c,m,p)=(0.2,0.1,0.7) and v=0.1, after drawing Cash, the new probabilities will be (0.1,0.15,0.75).
- If (c,m,p)=(0.1,0.2,0.7) and v=0.2, after drawing Cash, the new probabilities will be (Invalid,0.25,0.75).
- If (c,m,p)=(0.2,Invalid,0.8) and v=0.1, after drawing Cash, the new probabilities will be (0.1,Invalid,0.9).
- If (c,m,p)=(0.1,Invalid,0.9) and v=0.2, after drawing Cash, the new probabilities will be (Invalid,Invalid,1.0).
You need the cars of Rivals. So, you need to find the expected number of races that you must play in order to draw a pink slip.
击败一名黑名单对手后,你将获得一次从 x 张隐藏的有效奖券中抽取 1 张的机会。初始时,x=3,这三张隐藏的有效奖券分别为:现金券(Cash Slip)、扣押解除标记(Impound Strike Release Marker)以及对手车辆的粉红券(Pink Slip of Rival's Car)。初始时,随机抽取这三张奖券的概率分别为 c、m 和 p。此外还存在一个波动因子 v。你可以无限次地参加对手竞速赛,前提是尚未抽到粉红券。假设你每场比赛均获胜,并因此获得一次抽取奖券的机会。每次抽取时,你将从当前 x 张有效奖券中按其各自对应概率抽取一张。假设你抽中了某张奖券,且抽中前其概率为 a,则:
- 若该奖券为粉红券,则任务结束,你将不再进行任何后续比赛;
- 否则,
- 若 a≤v,则该奖券的概率变为 0,且此后所有抽取中该奖券均不再视为有效奖券,从而使 x 减少 1;同时,原概率 a 将被平均分配给其余尚存的有效奖券;
- 若 a>v,则该奖券的概率减少 v,而减少的这部分概率将被平均分配给其余所有当前有效的奖券。
例如:
- 若 (c,m,p)=(0.2,0.1,0.7) 且 v=0.1,在抽中现金券后,新的概率为 (0.1,0.15,0.75);
- 若 (c,m,p)=(0.1,0.2,0.7) 且 v=0.2,在抽中现金券后,新的概率为 (Invalid,0.25,0.75);
- 若 (c,m,p)=(0.2,Invalid,0.8) 且 v=0.1,在抽中现金券后,新的概率为 (0.1,Invalid,0.9);
- 若 (c,m,p)=(0.1,Invalid,0.9) 且 v=0.2,在抽中现金券后,新的概率为 (Invalid,Invalid,1.0)。
你需要获取对手的车辆,因此你需要计算:为抽中一张粉红券所需进行的比赛场数的期望值。
输入格式
The first line of input contains a single integer t (1≤t≤10) — the number of test cases.
The first and the only line of each test case contains four real numbers c, m, p and v (0<c,m,p<1, c+m+p=1, 0.1≤v≤0.9).
Additionally, it is guaranteed that each of c, m, p and v have at most 4 decimal places.
输入的第一行包含一个整数 t(1≤t≤10)—— 表示测试用例的数量。
每个测试用例仅有一行,包含四个实数 c、m、p 和 v(0<c,m,p<1,c+m+p=1,0.1≤v≤0.9)。
此外,保证 c、m、p 和 v 均最多有 4 位小数。
输出格式
For each test case, output a single line containing a single real number — the expected number of races that you must play in order to draw a Pink Slip.
Your answer is considered correct if its absolute or relative error does not exceed 10−6.
Formally, let your answer be a, and the jury's answer be b. Your answer is accepted if and only if max(1,∣b∣)∣a−b∣≤10−6.
对于每个测试用例,输出一行,包含一个实数——即为了抽到粉红色收据(Pink Slip)所需进行的比赛场数的期望值。
若你的答案的绝对误差或相对误差不超过 10−6,则该答案视为正确。
形式化地,设你的答案为 a,评测组的答案为 b。当且仅当 max(1,∣b∣)∣a−b∣≤10−6 时,你的答案被接受。
输入输出样例
输入#1
4 0.2 0.2 0.6 0.2 0.4 0.2 0.4 0.8 0.4998 0.4998 0.0004 0.1666 0.3125 0.6561 0.0314 0.2048
输出#1
1.532000000000 1.860000000000 5.005050776521 4.260163673896
说明/提示
For the first test case, the possible drawing sequences are:
- P with a probability of 0.6;
- CP with a probability of 0.2⋅0.7=0.14;
- CMP with a probability of 0.2⋅0.3⋅0.9=0.054;
- CMMP with a probability of 0.2⋅0.3⋅0.1⋅1=0.006;
- MP with a probability of 0.2⋅0.7=0.14;
- MCP with a probability of 0.2⋅0.3⋅0.9=0.054;
- MCCP with a probability of 0.2⋅0.3⋅0.1⋅1=0.006.
So, the expected number of races is equal to 1⋅0.6+2⋅0.14+3⋅0.054+4⋅0.006+2⋅0.14+3⋅0.054+4⋅0.006=1.532.
For the second test case, the possible drawing sequences are:
- P with a probability of 0.4;
- CP with a probability of 0.4⋅0.6=0.24;
- CMP with a probability of 0.4⋅0.4⋅1=0.16;
- MP with a probability of 0.2⋅0.5=0.1;
- MCP with a probability of 0.2⋅0.5⋅1=0.1.
So, the expected number of races is equal to 1⋅0.4+2⋅0.24+3⋅0.16+2⋅0.1+3⋅0.1=1.86.
对于第一个测试用例,可能的抽取序列如下:
- P,概率为 0.6;
- CP,概率为 0.2⋅0.7=0.14;
- CMP,概率为 0.2⋅0.3⋅0.9=0.054;
- CMMP,概率为 0.2⋅0.3⋅0.1⋅1=0.006;
- MP,概率为 0.2⋅0.7=0.14;
- MCP,概率为 0.2⋅0.3⋅0.9=0.054;
- MCCP,概率为 0.2⋅0.3⋅0.1⋅1=0.006。
因此,比赛场数的期望值等于 1⋅0.6+2⋅0.14+3⋅0.054+4⋅0.006+2⋅0.14+3⋅0.054+4⋅0.006=1.532。
对于第二个测试用例,可能的抽取序列如下:
- P,概率为 0.4;
- CP,概率为 0.4⋅0.6=0.24;
- CMP,概率为 0.4⋅0.4⋅1=0.16;
- MP,概率为 0.2⋅0.5=0.1;
- MCP,概率为 0.2⋅0.5⋅1=0.1。
因此,比赛场数的期望值等于 1⋅0.4+2⋅0.24+3⋅0.16+2⋅0.1+3⋅0.1=1.86。
输入解题思路,AI测评打分。不知道怎么写?