#Fre0111. 赛尔号

赛尔号

题目描述

《赛尔号》是许多 00 后的童年回忆,近年赛尔号怀旧服的开通更是吸引了许多老玩家回归,体验童年的乐趣。

赛尔号是一款养成类回合竞技游戏,玩家需要培育自己的精灵,在提高精灵等级的同时培养精灵的能力值,从而在回合对战中取得胜利。如果你没玩过赛尔号,可以代入精灵宝可梦、洛克王国、奥拉星等类型相同的游戏。如果你以上游戏都没玩过,请你更加仔细地阅读题目。

注意:以下设定与游戏设定有出入,以给定设定为准,请仔细阅读。

在赛尔号中,每只精灵有攻击、防御、特攻、特防、速度、体力六项数值,本题中我们不考虑特攻和特防,仅考虑剩余四种数值(攻击、防御、速度、体力)。对于每种精灵,每个数值都有一个对应的种族值 AiA_i。在培养精灵的过程中,我们可以给每个数值分配学习力 BiB_i,但每项数值的学习力不超过 255255,且所有数值的学习力总和不能超过 510510。此外,每只精灵还有一个范围位于 [0,31][0,31]个体值 CC。这里我们不考虑游戏中性格对数值的影响,则对于等级L([1,100])L(\in[1,100]) 的精灵,每项数值的计算公式如下:

  • 对于除体力以外的数值,计算公式为
$$S_i=\left \lfloor\frac{(2A_i+\frac{B_i}{4}+C)\cdot L}{100}\right\rfloor+5 $$
  • 对于体力,计算公式为
$$S_i=\left \lfloor\frac{(2A_i+\frac{B_i}{4}+C)\cdot L}{100}\right\rfloor+10+L $$

其中 \lfloor \cdot \rfloor 为下取整函数。

接下来介绍精灵的对战。在对战中,速度数值更大的精灵先进攻,若速度数值相同则随机一个精灵先进攻。设进攻方精灵的等级为 LL技能威力PP攻击的数值为 AtkAtk受进攻方精灵防御的数值为 DefDef。假设进攻方技能使用本系技能(1.51.5 倍加成),不考虑克制关系的影响,则受进攻方精灵受到的伤害值计算公式为:

$$Dmg=\left \lfloor\left (\frac{(\frac{2}{5}L+2)\cdot P\cdot Atk}{Def\cdot 50}+2\right )\times \frac{3}{2}\times\frac{R}{255}\right\rfloor $$

其中 RR 为一个 [217,255][217,255] 之间随机生成的整数,作为伤害值的随机修正。

一次进攻完成后,受进攻的精灵的体力扣除与伤害值 DmgDmg 相等的数值。若进攻完成后受进攻精灵的体力值降为 00 及以下,则游戏结束,进攻方获得胜利;否则进攻方、受进攻方交换,如此往复直至游戏结束。

设定交代结束,以下为题目内容:

小 C 和小 D 为两个赛尔号玩家。一天小 C 抓到了一只精灵,打算培养它以挑战小 D 的另一只强力精灵。小 C 已经得到了小 D 精灵的各项数值信息,并打算选择 恰好两个 数值并各分配一定的学习力。假设对战时小 C 和小 D 的精灵都为满级(即 L=100L=100),且小 C 和小 D 仅在对战中使用一种本系进攻技能。小 C 想知道能否通过合理分配学习力,使得在对战中能够以 100% 的概率战胜小 D 的精灵。

输入格式

输入第一行一个整数 T(1T100)T(1\le T\le 100),表示数据组数。对于每组数据:

第一行四个整数,分别描述小 C 的精灵的攻击、防御、速度、体力的种族值

第二行四个整数,分别描述小 D 的精灵的攻击、防御、速度、体力的数值

第三行三个整数,分别描述小 C 的精灵的个体值、小 C 精灵的技能威力和小 D 的精灵的技能威力。

保证所有精灵的种族值均为 [50,120][50,120] 之间的正整数,技能威力均为 [100,150][100,150] 之间,且为 55 的倍数的正整数,个体值均为 [0,31][0,31] 之间的正整数。

输出格式

对于每组数据,若小 C 能够以 100%100\% 的概率战胜小 D 的精灵则输出 Yes,否则输出 No

2
120 93 86 124
371 210 246 414
31 150 140
120 93 86 124
371 340 246 351
31 150 140
Yes
No

样例解释

对于第一组数据,一种可行的方法是为攻击和速度各分配 255255 的学习力,这样得到的小 C 精灵的攻击、防御、速度和体力数值分别为 339,222,271,389339,222,271,389,可以在对战中以 100% 的概率战胜小 D 的精灵。

对于第二组数据,无论小 C 如何分配学习力,都无法保证以 100% 的概率战胜小 D 的精灵。