数轴法:一种可能的做题思路(以分糖果一题为例)
wwwidk1234 · · 算法·理论
前言:笔者在研究 CSP-J 2021 分糖果 时,突发奇想出来的做法。觉得可以作为一种做题的思路于是就记录了下来。
魔改版题面(不要看了不要看了不要看了不要看了不要看了):
那维莱特是一只可爱的小海獭,他不知道在枫丹的哪个地方发现了
+ \infty 颗糖果,设k 为他可以拿走的糖果数量,则k 必须满足L \le k \le R 。因为美露莘喜欢吃糖(?),所以他必须分成n 份。求分完所有糖之后剩下的糖的数量。
根据除数的定义,
首先考虑
可以猜想:当
接下来考虑
最优点在线段内,考虑
最优点在线段外,考虑
综上,要使得自己分到的糖果数量最多,取走的糖果数量
- 若
R-L+1 \ge n ,则k=n-1 ; - 若
L \bmod n > R \bmod n ,则k=n-1 ; - 若
L \bmod n < R \bmod n ,则k=R \bmod n 。
上述结论均可证明。
可以尝试使用该方法完成的题目:
- P11184 带余除法(与本题的做法相似)
- 暂时想不到更多了。