今天不水贴了,我来写一个题解

image
题目:升级大蛇
ID:20459

解题思路:
分类讨论问题。
就是考虑 y/a 和 z/b 之间的大小关系。
就是 x/a 最小直接输出 x × n 即可。

思考过程
如果 y/a 小于 x/a 且 z/b 大于 y/a,那么答案就是尽量都用 y 然后剩下的用 x 补全

如果 z/b 小于 x/a 且 z/b 大于 y/a,那么答案就是尽量都用 z 然后剩下的用 x 补全

如果 z/b 小于 x/a 且 y/a 大于 z/b,如果 z/b 大于 y/a 或者是 z/b 小于 y/a,如果我们还是按照优先用单位代价最小的话,贪心就会出错,这里重点思考一下背包时使贪心出现错误的问题。那我们思考一下 y 和 z 怎么组合更优呢,然后剩下尽可能少的用 x。我们发现值域很大,不能用背包。我们假设 y/a 是性价比最高的,最多只能取 ⌊n/a⌋ 个 a,最多只能取 a-1 个 b。如果选 a+b 的话,我们完全可以用 b 个 a 来代替它,这样不是最优的,所以 b 最多取 a-1 个。

这样可以得出:

如果 a ≤ √n,那我们就枚举 b 的数量。

如果 a > √n,那我们就枚举 a 的数量。

看完不会的是这个 :woman_supervillain: