背包~~~~~~~3478:【例86.3】 完全背包问题

【题目描述】

设有n�种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为M�,今从n�种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M�,而价值的和为最大。

【输入】

第一行:两个整数,M�(背包容量,M≤200�≤200)和N�(物品数量,N≤30�≤30);第22..N+1�+1行:每行二个整数Wi��,Ci��,表示每个物品的重量和价值。

【输出】

仅一行,一个数,表示最大总价值。

【输入样例】

复制代码
10 4
2 1
3 3
4 5
7 9

【输出样例】

复制代码
max=12
cpp 复制代码
#include<bits/stdc++.h>//gezhengxu2024~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
using namespace std;
int W,n;
int w[35],v[35];
int dp[205];
int main()
{
	cin>>W>>n;
	int i,j,k;
	for(i=1;i<=n;i++)
	{
		cin>>w[i]>>v[i];
	}
	for(i=1;i<=n;i++)
	{
		for(j=W;j>=w[i];j--)
		{
			for(k=1;k<=j/w[i];k++)
			{
				dp[j]=max(dp[j],dp[j-k*w[i]]+k*v[i]);
			}
		}
	}
	cout<<"max="<<dp[W];
	return 0;
}
相关推荐
草莓熊Lotso2 分钟前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·linux·运维·服务器·数据库·c++·mysql
唐樽7 分钟前
C++ 竞赛学习路线笔记
c++·笔记·学习
ShineWinsu8 分钟前
对于Linux:文件操作以及文件IO的解析
linux·c++·面试·笔试·io·shell·文件操作
十五年专注C++开发32 分钟前
Oat++: 一个轻量级、高性能、零依赖的 C++ Web 框架
开发语言·c++·web服务·oatpp
John_ToDebug1 小时前
惰性绑定 vs 立即注入:Chromium 扩展 API 初始化策略深度对比
c++·chrome·v8
快乐的划水a2 小时前
c++计时器类
c++
山上三树2 小时前
预处理、编译、汇编、链接详解
c++
2301_789015622 小时前
C++:异常
开发语言·c++·异常·异常的处理方式
CVer儿2 小时前
c++接口内部内存分配问题设计
开发语言·c++
2301_789015622 小时前
C++:智能指针
c语言·开发语言·汇编·c++·智能指针