#Fre0111. 赛尔号
赛尔号
题目描述
《赛尔号》是许多 00 后的童年回忆,近年赛尔号怀旧服的开通更是吸引了许多老玩家回归,体验童年的乐趣。
赛尔号是一款养成类回合竞技游戏,玩家需要培育自己的精灵,在提高精灵等级的同时培养精灵的能力值,从而在回合对战中取得胜利。如果你没玩过赛尔号,可以代入精灵宝可梦、洛克王国、奥拉星等类型相同的游戏。如果你以上游戏都没玩过,请你更加仔细地阅读题目。
注意:以下设定与游戏设定有出入,以给定设定为准,请仔细阅读。
在赛尔号中,每只精灵有攻击、防御、特攻、特防、速度、体力六项数值,本题中我们不考虑特攻和特防,仅考虑剩余四种数值(攻击、防御、速度、体力)。对于每种精灵,每个数值都有一个对应的种族值 。在培养精灵的过程中,我们可以给每个数值分配学习力 ,但每项数值的学习力不超过 ,且所有数值的学习力总和不能超过 。此外,每只精灵还有一个范围位于 的个体值 。这里我们不考虑游戏中性格对数值的影响,则对于等级为 的精灵,每项数值的计算公式如下:
- 对于除体力以外的数值,计算公式为
- 对于体力,计算公式为
其中 为下取整函数。
接下来介绍精灵的对战。在对战中,速度数值更大的精灵先进攻,若速度数值相同则随机一个精灵先进攻。设进攻方精灵的等级为 ,技能威力为 ,攻击的数值为 ,受进攻方精灵防御的数值为 。假设进攻方技能使用本系技能( 倍加成),不考虑克制关系的影响,则受进攻方精灵受到的伤害值计算公式为:
$$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 $$其中 为一个 之间随机生成的整数,作为伤害值的随机修正。
一次进攻完成后,受进攻的精灵的体力扣除与伤害值 相等的数值。若进攻完成后受进攻精灵的体力值降为 及以下,则游戏结束,进攻方获得胜利;否则进攻方、受进攻方交换,如此往复直至游戏结束。
设定交代结束,以下为题目内容:
小 C 和小 D 为两个赛尔号玩家。一天小 C 抓到了一只精灵,打算培养它以挑战小 D 的另一只强力精灵。小 C 已经得到了小 D 精灵的各项数值信息,并打算选择 恰好两个 数值并各分配一定的学习力。假设对战时小 C 和小 D 的精灵都为满级(即 ),且小 C 和小 D 仅在对战中使用一种本系进攻技能。小 C 想知道能否通过合理分配学习力,使得在对战中能够以 100% 的概率战胜小 D 的精灵。
输入格式
输入第一行一个整数 ,表示数据组数。对于每组数据:
第一行四个整数,分别描述小 C 的精灵的攻击、防御、速度、体力的种族值。
第二行四个整数,分别描述小 D 的精灵的攻击、防御、速度、体力的数值。
第三行三个整数,分别描述小 C 的精灵的个体值、小 C 精灵的技能威力和小 D 的精灵的技能威力。
保证所有精灵的种族值均为 之间的正整数,技能威力均为 之间,且为 的倍数的正整数,个体值均为 之间的正整数。
输出格式
对于每组数据,若小 C 能够以 的概率战胜小 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
样例解释
对于第一组数据,一种可行的方法是为攻击和速度各分配 的学习力,这样得到的小 C 精灵的攻击、防御、速度和体力数值分别为 ,可以在对战中以 100% 的概率战胜小 D 的精灵。
对于第二组数据,无论小 C 如何分配学习力,都无法保证以 100% 的概率战胜小 D 的精灵。