CF2157I Hyper Smawk Bros
题目描述
你和 Bob 正在玩 Hyper Smawk Bros,你们需要共同挑战一个初始生命值为 $n$ 的 boss。
你们轮流行动,你先手。每次轮到你时,你可以使用一次攻击,造成 $x$ 点伤害,其中 $x$ 为整数且满足 $1 \leq x \leq m$,boss 的生命值变为 $n-x$。但是,不能使用你对手在上一回合刚刚用过的 $x$(在第一回合时,可以任意选择 $x$,即 $[1, m]$ 区间内均可选)。
第一个让 boss 的生命值 $n \leq 0$ 的玩家获胜。请你判断:若 Bob 也采取最优策略,你是否可以必胜。
输入格式
每个测试点包含多组测试数据。第一行为测试用例数 $t$($1 \leq t \leq 10^4$)。
接下来的每组测试用例,每行为两个整数 $n$ 和 $m$($1 \leq n \leq 10^6$,$2 \leq m \leq 10^6$),即 boss 的初始生命值 $n$ 和最大攻击值 $m$。
注意:所有测试用例中 $n$ 与 $m$ 的和没有额外限制。
输出格式
对于每组测试用例,若你可以必胜,输出 $\texttt{YES}$,否则输出 $\texttt{NO}$。
判断时不区分大小写(例如 $\texttt{YES}$、$\texttt{Yes}$、$\texttt{yes}$、$\texttt{yEs}$ 都会被判为正确答案)。
说明/提示
在第一个测试样例中,你可以直接造成 $8$ 点伤害,这样 $n$ 变为 $6-8=-2\leq 0$,你立即获胜。
在第二个测试样例中:
- 你选择造成 $10$ 点伤害;
- Bob 可以选择在 $[1,10]$ 且不为 $10$ 的任意值;
- 然后你再造成 $10$ 点伤害即可获胜。
在第三个测试样例中:
- 无论你先造成 $1$ 还是 $2$,Bob 都可以选择剩下的那个值,接下来你们只能互相切换 $1$ 和 $2$;
- 最终你无法获胜。
由 ChatGPT 5 翻译