ACdream1742 哗啦啦族的01背包问题

这道题是一个简化版的“超大背包问题”,一开始我试图用各种剪支或者启发式搜索来完成,最后都发现这个NPC问题的解空间太大了。不过因为这道题数据太水的原因,所以记忆化剪支其实是可以在很快的时间内AC的,但并不是在。

我们来看一下这道题究竟应该如何优化。首先观察数据N最大为40,其实从这里就可以发现,如果我们将复杂度的量级缩小到2^20,指数级算法还是有希望通过的。

于是我们将数据分为两段,一端先通过暴搜储存在一个集合中,当我们通过暴搜每次找到第二段中的一个解时,再在前面的我们所储存的集合中使用二分查找找到一个满足条件的解与之搭配。


//http://paste.ubuntu.com/11689907/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值