随笔分类 - 01背包
摘要:把a-b*k视为重量,a视为价值,背包,因为a-b*k有负数情况,所以要考虑负数容量的情况把a-b*k视为重量,是因为这样就可以叠加,当a=b*k时,也就是重量为0的状态, 初始没有物品时,重量也为零,所以dp数组初始化要讲重量为0(dp【0】)赋为零,而其余状...
阅读全文
摘要:DP思路:先拿5元出来,对价格排序,把最大的先放一边,对剩下的01背包。状态转移方程: dp[j]=max(dp[j],dp[j-a[i]]+a[i]);注意:1、n=1时直接输出m-a[0];2、musing namespace std;#define inf 0x...
阅读全文
摘要:思路:DP+一维数组(滚动数组)一般的状态转移方程是:dp[i+1][j]=max(dp[i][j],dp[i][j-w[i]]+v[i]此题用二维数组会超内存。如图:状态转移方程:dp[j]=max(dp[j],dp[j-w[i]]+v[i]);#include#i...
阅读全文
摘要:思路:背包问题,原先想的是把概率当做背包,在这个范围内最多能抢多少钱。但是问题出在概率这里,一是因为概率是浮点数,用作背包必须扩大10^n倍来用。二是最大不被抓概率不是简单的累加。二是p = (1-p1)(1-p2)(1-p3) 其中p为最大不被抓概率,p1,p2,p...
阅读全文

浙公网安备 33010602011771号