背包问题时间限制:3000ms |
内存限制:65535KB难度:3描述现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1#include#include#include
#include#includeusing namespace std;struct ba....
分类:
其他好文 时间:
2014-04-30 15:46:29
阅读次数:
443
m(i,v) = max{m(i-1,v),m(i-1,v-vi) + wi } ,v > vi
分类:
其他好文 时间:
2014-04-29 14:59:56
阅读次数:
599
解题思路:
求至少收到一份OFFER的最大概率,为了简化问题,求一份OFFER也没有收到的最小概率,然后1减去它就可以了。采用01背包,装入一份OFFER也没收到总概率的最小值,那么1减去它就是收到至少一份OFFER的最大概率。注意:dp[最大容量] 要有值,初始化时,而且本题dp数组初始化值为1
代码:
#include
#include
#include
using name...
分类:
其他好文 时间:
2014-04-29 13:21:22
阅读次数:
321
01背包的变形。先算出硬币面值的总和,然后此题变成求背包容量为V=sum/2时,能装的最多的硬币,然后将剩余的面值和它相减取一个绝对值就是最小的差值。代码:#include
#include #include #include #include using namespace std;#define...
分类:
其他好文 时间:
2014-04-28 09:53:54
阅读次数:
645
这题有些巧妙,看了别人的题解才知道做的。因为按常规思路的话,背包容量为浮点数,,不好存储,且不能直接相加,所以换一种思路,将背包容量与价值互换,即令各银行总值为背包容量,逃跑概率(1-P)为价值,即转化为01背包问题。此时dp[v]表示抢劫到v块钱成功逃跑的概率,概率相乘。最后从大到小枚举v,找出概...
分类:
其他好文 时间:
2014-04-28 09:16:39
阅读次数:
556
原题地址:http://www.rqnoj.cn/problem/2解题思路:背包问题。状态转移方程:DP[i][j]=max(DP[i-v[j]][j-1]+p[j]*v[j],DP[i][j-1])DP[i][j]表示最多话费i的钱,购买前j+1个物品所能达到的最大价值。解题代码:
1 #inc...
分类:
其他好文 时间:
2014-04-27 21:26:22
阅读次数:
537
背包问题。思路:如果m=5:
求出背包容量为m-5,买前n-1样便宜的菜(排个序)的最大价值(即最大消费,即消费完后剩余值最接近5)最后减去最大的那个菜的价格,就得到最小的余额。代码:#include
#include #include #include #include using namespa...
分类:
其他好文 时间:
2014-04-27 21:02:23
阅读次数:
640