2025.12.17每日一题:剩下的数

Hanzhi_OvO的头像 发布于 2025-12-17 138 次阅读


题目来源:https://ac.nowcoder.com/acm/problem/244138

显然是一道思维题。我们思考,这是一个从 lr 的排列,对于每一次给定的询问数 x,我们不妨先从最理想情况思考,即整个环的和能被 x 整除。此时余数为0,也就是整个环一次性被删完,没有留下任何一个数字。

当然事实上过程不可能一帆风顺,我们在给出正式证明前,我们可以采用小范围样例进行模拟。对样例中第一个询问,我们取 1, 2, 3 ,4 这四个数字进行删除,剩下数字 5.对样例2中我们选择整个序列,没有剩余数字且能被 3 整除。同时注意整个环求和发现,样例给到的环求和为 15,对于2取模存在余数,对于3取模没有余数。所以推测只需要判断全环数字之和能不能被询问数 x 整除即可。

接下来我们来尝试证明这个猜测。由于询问数 x 小于环中数字数量(我们记为 n),所以不难发现环中所有的数字对 x 进行取模,余数从 0 到 x-1 完全覆盖。我们假设整个环对询问数 x 取模后得到数字 a,那么剩余的数字之和必然能被 x 整除。

所以我们认为,环中只可能存在一个数剩余。如果剩余两个数,若两个数字之和可以被询问数 x 整除,那么与一次性取完相矛盾。如果两个数之和不能被询问数 x 整除,根据上述推导则必然存在某一个数可以被整除,和假设同样矛盾。

所以答案很明确,只有 0 和 1 两种可能性。我们只需要求出环的所有数字和,然后判断能否被询问数 x 整除。如果可以直接取走整个环,剩余 0 个数字,否则剩余 1 个数。代码很简单,但是思维量偏大,分析偏理论化。如果不能理解不妨取小范围特殊化样例进行手动模拟然后得出结论。(考场上一般遇到这种题目就是模拟特例后半猜半证结论)。