2018.07.08 NOIP模拟 ABCD(背包)

传送门

好吧我承认这道题我又 z z zz zz了,考试时竟然爆 0 0 0,唉下来之后发现就是个简单 d p dp dp

我们对原来的限制条件变形,让 0 ≤ n u m [ i ] ≤ a [ i ] − b [ i ] 0\le num[i]\le a[i]-b[i] 0num[i]a[i]b[i],然后令 n u m [ i ] = e [ i ] − a [ i ] num[i]=e[i]-a[i] num[i]=e[i]a[i],代入原来的式子运算,会发现这是一道背包。 b [ i ] − a [ i ] b[i]-a[i] b[i]a[i]是物品的数量限制, n u m [ i ] num[i] num[i]是物品 i i i的选取数量限制, c [ i ] c[i] c[i]则是物品的大小,然后就是背包了。

然而我们发现,这样子只有 60 60 60分。因此需要用一个叫做单调队列的东西进行优化。代码如下:

代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值