题解:P14636 [NOIP2025] 清仓甩卖 / sale
看到难度是黑还以为自己场切黑题了赶紧来写题解结果还没写完就降紫了/fn
先考虑怎么样设置清仓价会导致小 R 无法获得最大价值。
如果没有任何一颗糖果被跳过,买的就是性价比最大的那些糖果,显然一定可以获得最大价值。
如果有糖果被跳过了,那么这肯定是一颗
于是先枚举这两块糖果,设为糖果
接下来考虑计算钦定了这两块糖果之后剩下的糖果有多少种设置剩下的清仓价的方法可以使小 R 取不到最优解,有如下的限制:
-
更改后可以获得更优解。若是存在一个原价比糖果
i 低的糖果k 且满足a_i+a_k\ge a_j ,那么就无法更换得到更优解,因此所有原价在[a_j-a_i,a_i] 间的非糖果i 的糖的清仓价都必须设为2 ,而原价小于a_j-a_i 的糖的无论清仓价是多少都不会有影响。 -
小 R 考虑到糖果
j 时恰好只剩1 块钱。也就是说所有性价比高于糖果j 的清仓价之和恰好为m-1 ,而所有性价比有可能高于糖果j 的糖即为:- 所有原价高于糖果
j 的糖,清仓价为1 或2 均可。 - 原价低于糖果
j 但高于糖果i 的糖,这类糖的原价一定超过糖果j 的一半,因此只要清仓价为1 那么性价比就会大于糖果i 。 - 糖果
i ,清仓价为1 。
第一类糖中的每一个都可能会花费
1 或2 块钱,第二类糖中的每个都将花费1 块钱。设第一类糖有y 个,第二类糖有x 个,枚举第二类糖中有k 个清仓价为1 ,由总价值为m-2 可解得第二类糖中清仓价为2 的有m-2-k-y 个,则方案数为\sum\limits_{k=0}^{x}\binom{x}{k}\binom{y}{m-2-k-y} ,由范德蒙德卷积得其即为\binom{x+y}{m-2-y} 。 - 所有原价高于糖果
可以发现这样就考虑完了所有糖果,这样就算出来了小 R 取不到最优解的情况,用
实现方面,将所有糖果按原价排序后枚举