[hiho 07]完全背包

题目描述

状态 f[i, j] 表示已经决定前 i 种物品的选取,总 need 不超过 j;

状态转移方程 f[i, j] = max{f[i, j – need[i]] + val[i], f[i – 1, j]};

结果的状态表示为 f[n, m]。

注意状态方程与01背包的区别,这个区别反映了物品能取一个还是无穷个。

反映到代码上的区别就是内层循环的次序不同。

#include <iostream>
#include <algorithm>

using namespace std;

int f[100005];

int main() {
	int n, m;
	cin >> n >> m;

	int val, need;
	for (int i = 0; i < n; i++) {
		cin >> need >> val;
		for (int j = need; j <= m; j++) {
			f[j] = max(f[j], f[j - need] + val);
		}
	}
	cout << f[m] << endl;
	return 0;
}

REF:背包问题九讲

时间: 2024-12-06 07:18:37

[hiho 07]完全背包的相关文章

hiho#1038 : 01背包 (动态规划)

#1038 : 01背包 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励的时刻了! 小Ho现在手上有M张奖券,而奖品区有N件奖品,分别标号为1到N,其中第i件奖品需要need(i)张奖券进行兑换,同时也只能兑换一次,为了使得辛苦得到的奖券不白白浪费,小Ho给每件奖品都评了分,其中第i件奖品的评分值为value(i),表示他对这件奖品的喜好值.现在他想知道,凭借他手上的这

[hiho 06]01背包

题目描述 状态 f[i, j] 表示已经决定了前 i 个物品的选取情况,总费用不超过j: 状态转移方程 f[i, j] = max{f[i – 1, j], f[i – 1, j – need[i]] + value[i]}: 最终解的状态表示 f[n, m]. 注意到状态转移只需用到上层的两个状态,所以可以将状态降维进行空间压缩. 由于j – need[i] < j,所以每层j从大向小计算状态. #include <iostream> #include <algorithm>

百度房间卡是否可骄傲是快乐积分拉斯科

http://www.ebay.com/cln/ycn6646/-/167568259015/2015.02.07 http://www.ebay.com/cln/gon-n31/-/167197496017/2015.02.07 http://www.ebay.com/cln/hu_d027/-/167453250013/2015.02.07 http://www.ebay.com/cln/ywa2962/-/167301832012/2015.02.07 http://www.ebay.co

hiho 第七周 完全背包

完全背包 1 #include<iostream> 2 #include<memory.h> 3 #include<cmath> 4 using namespace std; 5 #define maxn 505 //刚开始不小心打成105了...只有75,改成505,就100了 6 #define maxm 100005 7 int need[maxn],value[maxm]; 8 int dp[maxm]; 9 int main() 10 { 11 int n,m

背包深入讲解

贴两个精辟讲解: http://www.cnblogs.com/tanky_woo/archive/2010/07/31/1789621.html http://www.cnblogs.com/daoluanxiaozi/archive/2012/05/06/2486105.html Tanky Woo的前博客 背包之01背包.完全背包.多重背包详解 背包之01背包.完全背包.多重背包详解 PS:大家觉得写得还过得去,就帮我把博客顶一下,谢谢. 首先说下动态规划,动态规划这东西就和递归一样,只能

POJ2184---Cow Exhibition(01背包变形)

Description "Fat and docile, big and dumb, they look so stupid, they aren't much fun-" - Cows with Guns by Dana Lyons The cows want to prove to the public that they are both smart and fun. In order to do this, Bessie has organized an exhibition

#1043 : 完全背包

#1043 : 完全背包 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 且说之前的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励的时刻了! 等等,这段故事为何似曾相识?这就要从平行宇宙理论说起了---总而言之,在另一个宇宙中,小Ho面临的问题发生了细微的变化! 小Ho现在手上有M张奖券,而奖品区有N种奖品,分别标号为1到N,其中第i种奖品需要need(i)张奖券进行兑换,并且可以兑换无数次,为了使得辛苦得到的奖券不白白浪费,小

LightOJ1079---Just another Robbery (概率做01背包)

As Harry Potter series is over, Harry has no job. Since he wants to make quick money, (he wants everything quick!) so he decided to rob banks. He wants to make a calculated risk, and grab as much money as possible. But his friends - Hermione and Ron

背包详解

博客链接:http://www.cnblogs.com/tanky_woo/archive/2010/07/31/1789621.html 01背包: 题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2602 代码: 1 #include <algorithm> 2 #include <iostream> 3 #include <sstream> 4 #include <cstdlib> 5 #include &