ACM——划水ing——背包讨论
来源:互联网 发布:北师大网络信息门户 编辑:程序博客网 时间:2024/05/20 01:38
传统背包问题
根据 重量 W 价值 V 物品个数 S
对于背包剩余容量 C
逐一枚举物品,对 0-C 依次往后 dp
所以复杂度为 S*C
而除此
我们还可以暴力枚举 对于每个物品选择或不选择
其复杂度为
2^S
如果分别暴力枚举前一半 和 后一半
再针对前一半 排序后一半的总W后 二分查找
其复杂度可以优化为
记 P = 2^(S/2)
复杂度 = P+P+PlogP(排序) + PlogP(二分查找)
而如果对于这样一种背包模型
有N个堆 每个堆有Si个物品
最多从每个包中选择一个物品
如果背包DP刷一遍 是 N*S*C
而二分查找是
P=(S+1)^N
复杂度 = P+P+PlogP(排序) + PlogP(二分查找)
枚举二分的复杂度 与 C无关
待续……
0 0
- ACM——划水ing——背包讨论
- 划水划水——EA导出各种乱七八糟的东西
- vector——ing
- 划水之后——我还没强大到能搞定所有的东西
- ACM集训——01背包——POJ3624
- acm——贪心算法(背包问题)
- ACM-01背包之饭卡——hdu2546
- 南阳理工ACM——106背包问题
- ACM学习感悟——HDU2844 多重背包
- ACM日记_17.7.22——多重背包模板
- ycb的ACM进阶之路——背包
- HDU ACM—STEP 3.3.7二维背包
- Android —— 日常Error(ing)
- 一道关于大数的ACM题的讨论过程——沟通与发散思维
- 讨论——解惑
- 产品——讨论
- InvocationHandler接口—讨论
- HDU ACM 4501 小明系列故事——买年货->多维背包(多为01背包)
- Ubuntu下Samba服务器的安装和简单使用
- 强大灵活的Sublime3正则替换功能
- Java基础之 连接池 dbcp c3p0
- Android中的Cookies和WebView缓存
- 刷题记录
- ACM——划水ing——背包讨论
- 垃圾回收机制
- 笔记
- 子网掩码及其作用
- NetApp FAS 系列Linux DM安装步骤
- 1002.Alphacode
- std::vector<X>().swap(*XX) 的用意
- [代码笔记] java连接redis&通常操作
- node模版引擎Jade学习笔记