有 $𝑚$ 种物品,每种物品第一次买价值为 $𝑎𝑖$,以后每次买都是 $𝑏𝑖$。求买 $𝑛$件物品的最大总价值
要么都是第一次买的$a_i$,要么就是一堆$a_i$,$+k\times b_i$。
选四个。
证明:若$a_i>b_i>a_j$
$b_i>b_j$,显然$a_i+3b_i$
$b_i<b_j$, 显然$a_i+a_j+b_i+b_j<a_i+3b_j=a_i+a_j+3b_j$
就可以枚举$b_i$
需要注意的细节。
- 二分出前面需要选更优秀的$a_j$,但是不要忘记,如果$a_i$一定要强制选上。
- 若$pos>=n$,直接返回前缀和即可。
- 手写二分吧,控制边界。
代码
1 |
|