背包~~~~~~~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;
}
相关推荐
休息一下接着来几秒前
C++ 设计模式:Pimpl(Pointer to Implementation)
c++·算法·设计模式
苦藤新鸡19 分钟前
18.矩阵同行同列全置零
数据结构·c++·算法·力扣
啟明起鸣1 小时前
【Linux 项目管理工具】GDB 调试是现成 C/C++ 项目的 “造影剂”,用来分析项目的架构原理
linux·c语言·c++
呼啦啦5611 小时前
【C++入门】
c++
苦藤新鸡1 小时前
19.旋转输出矩阵
c++·算法·leetcode·力扣
小范馆2 小时前
C++ 编译方法对比:分步编译 vs 一步到位
java·开发语言·c++
云泽8082 小时前
C++ 继承进阶:默认成员函数、多继承问题与继承组合选型
开发语言·c++
一颗青果2 小时前
C++下的atomic | atmoic_flag | 内存顺序
java·开发语言·c++
跃渊Yuey2 小时前
【Linux】Linux进程信号产生和保存
linux·c语言·c++·vscode
好评1242 小时前
【C++】AVL树:入门到精通全图解
数据结构·c++·avl树