题目大意
题目: C. 带有分数的游戏
题意:
Alice 和 Bob 玩一个游戏,初始有两个整数 和 。Alice 先手,两人轮流进行操作。
每回合玩家可以执行以下操作之一:
-
将 减少 1(需满足 )。
-
将 减少 1(需满足 )。
游戏在 且 时结束。
胜负判定:
-
Bob 获胜:如果在游戏过程中的任意时刻(包括初始状态),分数 的值等于 。
-
Alice 获胜:如果游戏结束时 Bob 仍未获胜。
假设双方都采取最优策略,判断谁是赢家。
样例解释:
-
输入
4 6:初始 ,Bob 立即获胜。 -
输入
10 14:双方博弈过程中,可能会到达状态 ,此时 ,Bob 获胜。 -
输入
15 15:Alice 存在必胜策略,使得游戏过程中分数永远不等于 ,最终 Alice 获胜。
思路讲解
不难推出,3P 小于2Q 时无答案。(糖水不等式就是把,这个糖水不等式就是把糖从溶液里面抠出来,溶液质量和糖的质量它都会减。按照实际生活常识,我们知道此时溶液浓度肯定是下降的,因为你少加点糖,那溶液浓度总归是减的呀,不会增呀,对吧?)

你提到的糖水不等式其实两个方向都能用,而且恰好就是切入点。
糖水不等式回顾
如果 (即 ),那么分子分母同时减去相同正数后,分数变小:
如果 (即 ),则反过来,分数变大(或不变)。
镜像策略 = 分子分母同时减 1
Bob 的镜像策略效果是:每一轮 和 各减 1,Alice 无法干预。那每一轮分数从 变成 。
时的两种情况
情况一:(即 )
分数在 和 之间。由糖水不等式,每轮分子分母同减 1 后分数变小,朝着 靠近。而 每轮恰好减 1(整数),所以不会"跳过" ,一定会精确命中 。Bob 赢。
情况二:(即 )
分数 。由糖水不等式,分子分母同减 1 后分数变大(远离 )。而且 的余量不够—— 会先降到 1,此后只能减 , 每步变化 ,从 开始逐步减,永远跳过 。Alice 赢。
总结
| 条件 | 糖水不等式效果 | 结果 |
|---|---|---|
| 已经命中 | Bob 赢 | |
| 分数远离 (变更小) | Alice 赢 | |
| 分数靠近 (变小) | Bob 赢 | |
| 分数远离 (变大) | Alice 赢 | |
| 分界线就是 ,即 。 | ||
| 所以判定条件只有一句话:Bob 赢当且仅当 且 。糖水不等式是两个方向上统一的判据。 |
好问题。糖水不等式只告诉我们方向(变小),不保证精确命中 。真正的保证来自 这个量。
为什么一定能精确命中
镜像策略下,每轮 和 各减 1,所以:
是整数,每轮恰好减 1。
起点 (正整数),每轮减 1:
它是逐个整数递减的,不可能跳过 0。所以 一定会被经过。
和糖水不等式的关系
糖水不等式告诉你的是分数 在变小,但分数是有理数,变小不代表能精确等于某个值(比如你可能担心 这样跳过了 )。
但 是整数世界的东西。 等价于 。每轮 减 1,从正整数出发,必然经过 0。这就是精确命中的保证。
还要确认的一件事
从 减到 需要 轮,即 步。游戏总共有 步,所以需要:
代入 :
这就是为什么 是必要且充分的——它保证游戏在 到达 之前不会提前结束。
所以结论很清晰: 每轮整数减 1,不会跳过; 保证游戏撑得到那一轮。两个条件合在一起, 一定会被命中。
那么 P 除以 Q 大于2/3是比较棘手的这个情况。然后我们又进行了一下分类讨论,然后说明了 P 除以 Q 大于等于一的时候,一定是没有解的。这是根据糖水不等式,其实就是颠倒个个嘛,就是颠倒个,就是水和糖不一样了,那么这个结果 也也是自然是不一样的。然后是 p 除以 q 大于2/3小于一的时候,那么就是这个时候是 Bob 一定是赢的,因为 我们写在这个图片里面了,它一定有一个合法解。


AC代码
AC
https://codeforces.com/contest/2197/submission/362464859
1 | /** |