hdu3466 Proud Merchants 变形01背包
来源:互联网 发布:埃迪·琼斯数据 编辑:程序博客网 时间:2024/06/07 12:04
很好的一道01背包题 好写超难想
首先为什么不是普通的01背包
5 10 5
3 5 6
这两个物品观察先后顺序造成的结果 先买第一件 后买第二件 则需要的价值大于等于10+0=10即可 反过来 则需要10+3=13
这说明选一个物品是否加入背包和这个物品在所有物品中的访问次序有关联
所以只要解决物品的次序问题 就是普通01背包了
针对两个物品p1 q1 v1和p2 q2 v2 先决定买不买1再决定买不买2可以这样表示:需要的价值m1>=q1+p2 反过来则m2>=q2+p1
假如一种方案优 则m1<m2 q1+p2<q2+p1 移项q1-p1<q2-p2
也就是物品访问的优先级和q-p有关 这样再用01背包就过了
发表完看了别人的题解 还有个说法是:如果没有金钱的限制的话我们进行求解dp是肯定没有后效性的,但是有了金钱的限制之后完全就不一样了。要保证dp方程无后效性 j-p[i]一定要比j先算,那么当算i时,最小能算到q[i]-p[i],这样保证后面的可以用到前面的状态,因此以q[i]-p[i]排序即可保证无后效性。
0 0
- hdu3466 Proud Merchants 变形01背包
- HDU3466 Proud Merchants (01背包变形)
- HDU3466:Proud Merchants(01背包)
- hdu3466 Proud Merchants (01背包)
- 【HDU3466】Proud Merchants(01背包)
- hdu3466 Proud Merchants 0-1背包变形
- hdu3466 Proud Merchants 01背包 排序 dp
- hdu3466 Proud Merchants(排序+01背包)
- HDU3466 - Proud Merchants(贪心+01背包)
- HDU3466 Proud Merchants(贪心+01背包)
- HDU3466~Proud Merchants(01背包+贪心)
- HDU3466 Proud Merchants 排序01背包
- hdu3466 Proud Merchants 变形的0-1背包
- HDU3466 Proud Merchants(背包)
- 01背包水题篇之HDU3466——Proud Merchants
- hdu3466 Proud Merchants 需要排序的01背包
- HDU 3466--Proud Merchants【01背包变形】
- Proud Merchants(01背包变形)
- OC中的Block简单介绍
- 21天学通Java学习笔记-Day05
- android 事件分发传递机制(转)
- Google IO 2014
- 从BAT看企业构建大数据体系的六层级
- hdu3466 Proud Merchants 变形01背包
- 单源多目标最短路径之Dijkstra算法
- 用 Cobertura 测量测试覆盖率
- 屏幕截图(UIView转为图像存储到本地)
- Binary String Matching---KMP算法,再次复习
- (未完成)学习方法
- java 常见的面试——框架
- Android中draw过程分析 (结合Android 4.0.4 最新源码)
- 跟我一起学extjs5(04--MVVM特性的简单说明)