poj 3624
类型为dp-01背包
初学背包 找了点背包的题目做做
题目大概意思就是能够带下的范围内的首饰 增加最大的魅力值
而且每种首饰只能带一种
显然是01背包 所承受重量为 背包的容量
每个首饰的重量和增加的魅力值为其大小和价值
直接
for ( int i = 0; i < n; i ++){
for ( int j = m; j >= cost[i]; j --){
dp[j] = max( dp[j], dp[ j - cost[i] ] + val[i]);
}
}
就好。。。
情况 3ac
第一次RE了 原因可能是对数组整体赋值的时候越界了( 想节省一点用的sizeof(long) * ( m + 1)) 也可能是数组开的小了被越界 最后改了下为整体赋值提交。
第二次WA了 原因是dp数组开小了 应该开到背包的容量大小
第三次AC。