CFCF2115C.Gellyfish and Eternal Violet

省选/NOI-

官方

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

在 Gellyfish 面前有 nn 只怪物,编号从 11nn,第 ii 只怪物的生命值为 hih_i

Gellyfish 并不想杀死它们,但她想让这些怪物对自己不再构成威胁。因此,她希望把所有怪物的生命值都恰好降到 11

现在,Gellyfish 拿着“泪水磨砺之剑”,准备攻击怪物 mm 回合。每一回合:

  1. “泪水磨砺之剑”有概率 pp 闪耀。
  2. Gellyfish 可以选择是否攻击:
    • 如果 Gellyfish 不攻击,则什么都不会发生。
    • 如果 Gellyfish 选择攻击且“泪水磨砺之剑”闪耀,则所有怪物的生命值都会减少 11
    • 如果 Gellyfish 选择攻击且“泪水磨砺之剑”没有闪耀,则 Gellyfish 可以选择其中一只怪物,使其生命值减少 11

请注意,在 Gellyfish 决定是否攻击之前,她会知道剑是否闪耀。此外,当剑闪耀时,Gellyfish 只能对所有怪物进行攻击,不能只攻击其中一只怪物。

现在,Gellyfish 想知道,如果她在战斗中每一步都做出最优选择,最终达成目标的概率是多少。

输入格式

每组测试数据包含多个测试用例。第一行包含一个整数 tt1t1001 \le t \le 100),表示测试用例的数量。

每个测试用例的第一行包含三个整数 nnmmpp'1n201 \leq n \leq 201m40001 \leq m \leq 40000p1000 \leq p' \leq 100),分别表示怪物的数量、攻击的回合数,以及“泪水磨砺之剑”闪耀的概率 p=p100p = \frac{p'}{100}

每个测试用例的第二行包含 nn 个整数 h1,h2,,hnh_1,h_2,\ldots,h_n1hi4001 \leq h_i \leq 400),表示每只怪物的生命值。

保证所有测试用例中 nn 的总和不超过 100100

输出格式

对于每个测试用例,输出一个实数,表示 Gellyfish 达成目标的概率。

如果你的答案的绝对误差或相对误差不超过 10610^{-6},则视为正确。

形式化地说,设你的答案为 aa,标准答案为 bb,当且仅当 abmax(1,b)106\frac{|a - b|}{\max{(1, |b|)}} \le 10^{-6} 时,判为正确。

输入输出样例

  • 输入#1

    4
    2 2 10
    2 2
    5 5 20
    2 2 2 2 2
    6 20 50
    1 1 4 5 1 4
    9 50 33
    9 9 8 2 4 4 3 5 3

    输出#1

    0.910000
    0.672320
    0.588099
    0.931474

说明/提示

在第一个测试用例中,Gellyfish 在第一回合无论剑是否闪耀都会选择攻击。

如果第一回合剑闪耀,则 Gellyfish 在第一回合攻击后就能达成目标。

否则,如果第一回合剑没有闪耀,她会在第一回合攻击第 11 只怪物。对于第二回合:

  • 如果剑闪耀,由于第 11 只怪物在第一回合被攻击过,Gellyfish 无法达成目标。
  • 否则,她可以攻击第 22 只怪物,从而达成目标。

因此,Gellyfish 达成目标的概率为 10%+(90%90%)=91%10\% + (90\% \cdot 90\%) = 91\%

在第二个测试用例中,Gellyfish 只会在第一次剑闪耀时选择攻击。可以发现,唯一无法达成目标的情况是 55 回合中剑从未闪耀。Gellyfish 达成目标的概率为 100%(80%)5=67.232%100\% - (80\%)^5 = 67.232\%

首页