完全背包

原创 2018年04月16日 21:39:32
时间限制:3500 ms  |  内存限制:65535 KB
难度:4
描述

直接说题意,完全背包定义有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的体积是c,价值是w。求解将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。本题要求是背包恰好装满背包时,求出最大价值总和是多少。如果不能恰好装满背包,输出NO

输入
第一行: N 表示有多少组测试数据(N<7)。 
接下来每组测试数据的第一行有两个整数M,V。 M表示物品种类的数目,V表示背包的总容量。(0<M<=2000,0<V<=50000)
接下来的M行每行有两个整数c,w分别表示每种物品的重量和价值(0<c<100000,0<w<100000)
输出
对应每组测试数据输出结果(如果能恰好装满背包,输出装满背包时背包内物品的最大价值总和。 如果不能恰好装满背包,输出NO)
样例输入
2
1 5
2 2
2 5
2 2
5 1
样例输出
NO

1

思路:完全背包

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = 2020;
#define INF 0x3f3f3f3f
int dp[50050],v[maxn],w[maxn];
int m,n;
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		scanf("%d %d",&m,&n);
		for(int i = 1;i<=m;i++){
			scanf("%d %d",&w[i],&v[i]);
		}
		memset(dp,-1*INF,sizeof(dp));
		dp[0] = 0;
		for(int i = 1;i<=m;i++){
			for(int k = w[i];k<=n;k++){
				dp[k] = dp[k]>dp[k-w[i]]+v[i]?dp[k]:dp[k-w[i]]+v[i];
			}
		}
		if(dp[n] < 0) printf("NO\n");
		else{
			printf("%d\n",dp[n]);
		}
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Acer12138/article/details/79967033

HDU_完全背包系列

HDU 完全背包系列持续更新中……
  • jhgkjhg_ugtdk77
  • jhgkjhg_ugtdk77
  • 2016-07-23 12:01:13
  • 1641

完全背包总结

完全背包问题: 题目 有N种物品和一个容量为V的背包。第i种物品有若干件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 ...
  • HowardEmily
  • HowardEmily
  • 2017-02-15 21:23:06
  • 4045

hihocoder1043 完全背包 完全背包的几种写法

题目链接: hiho1043 二维: #include #include #include #define MAXN 50...
  • AXuan_K
  • AXuan_K
  • 2015-05-26 15:08:06
  • 1285

(NYoj 311) 完全背包 --完全背包模板题

完全背包 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 直接说题意,完全背包定义有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的体积是c,价...
  • STILLxjy
  • STILLxjy
  • 2016-08-05 20:26:54
  • 386

完全背包 POJ - 2063 

John never knew he had a grand-uncle, until he received the notary's letter. He learned that his lat...
  • yzRefueling
  • yzRefueling
  • 2017-04-23 09:55:46
  • 226

poj1014完全背包 hdu2191多重背包 经典二进制优化

多重背包或者完全背包转换成 01 背包问题就是多了个二进制优化 把它的件数C 用分解成若干个件数的集合 这里面数字可以组合成任意小于等于C 的件数,而且不会重复 之所以叫二进制分解,是因为这样分解可以...
  • Summer__show_
  • Summer__show_
  • 2016-05-25 20:32:15
  • 772

杭电ACM1114(完全背包)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 题目大意:有一个存钱罐,给出它的重量和装满硬币的重量,然后给出里面装的硬币的种类数,并给出每种...
  • Runner__1
  • Runner__1
  • 2015-11-09 20:35:53
  • 1016

完全背包(装满)模板

完全背包 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 直接说题意,完全背包定义有N种物品和一个容量为V的背包,每种物品都有无限件可用。...
  • xunalove
  • xunalove
  • 2017-05-04 10:28:48
  • 674

完全背包---动态规划

描述 直接说题意,完全背包定义有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的体积是c,价值是w。求解将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。本题...
  • u013174702
  • u013174702
  • 2015-05-15 10:35:51
  • 731

POJ - 1276 裸完全背包

题意:要取价值为cash的钱,ATM机里面有N种面额的钱,每种面额为Ni,数量为Di,问最多能取出多少钱(要小于等于cash); 思路:以cash为背包容量,多重背包#include #includ...
  • qq_36542637
  • qq_36542637
  • 2017-08-09 16:27:42
  • 122
收藏助手
不良信息举报
您举报文章:完全背包
举报原因:
原因补充:

(最多只允许输入30个字)