这是一个背包问题。
Ci = 1为01背包
Ci * Ai >= m 为完全背包
其余的为多重背包。
对于多重背包而言,由于Ci<=1000,如果拆分背包为2的指数幂, 则log Ci
<= 10,非常小。
而选择用单调队列优化的话, 时间复杂度为O(VN)。
刚开始敲了个通用的单调队列,尼玛TLE给跪了。
虽说时间复杂度为O(VN), 但是也要看为多少倍VN。
如果为10VN的话,那其实跟指数优化没什么区别,估计会超时。
所以重点就是单调队列要写得尽量简单,减少单调队列的开销。
Ci = 1为01背包
Ci * Ai >= m 为完全背包
其余的为多重背包。
对于多重背包而言,由于Ci<=1000,如果拆分背包为2的指数幂, 则log Ci
而选择用单调队列优化的话, 时间复杂度为O(VN)。
刚开始敲了个通用的单调队列,尼玛TLE给跪了。
虽说时间复杂度为O(VN),
如果为10VN的话,那其实跟指数优化没什么区别,估计会超时。
所以重点就是单调队列要写得尽量简单,减少单调队列的开销。