[C++][算法基础]分组背包问题(动态规划)

ops/2024/11/21 0:21:03/

有 𝑁 组物品和一个容量是 𝑉 的背包。

每组物品有若干个,同一组内的物品最多只能选一个。
每件物品的体积是 v_{ij},价值是 w_{ij},其中 𝑖 是组号,𝑗 是组内编号。

求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。

输出最大价值。

输入格式

第一行有两个整数 𝑁,𝑉,用空格隔开,分别表示物品组数和背包容量。

接下来有 𝑁 组数据:

  • 每组数据第一行有一个整数 s_{i},表示第 𝑖 个物品组的物品数量;
  • 每组数据接下来有 s_{i} 行,每行有两个整数 v_{ij},w_{ij},用空格隔开,分别表示第 𝑖 个物品组的第 𝑗 个物品的体积和价值;
输出格式

输出一个整数,表示最大价值。

数据范围

0<𝑁,𝑉≤100
0<s_{i}≤100
0<v_{ij},w_{ij}≤100

输入样例
3 5
2
1 2
2 4
1
3 4
1
4 5
输出样例:
8

代码:

优化一维数组做法:

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;const int N = 110;
int n,m,s;
int f[N];
int w[N],v[N];int main(){cin>>n>>m;for(int i = 1;i <= n;i ++){cin>>s;for(int j = 1;j <= s;j ++){cin>>v[j]>>w[j];}for(int j = m;j >= 0;j --){for(int k = 1;k <= s;k ++){if(v[k] <= j){f[j] = max(f[j],f[j - v[k]] + w[k]);}}}}int res = f[m];cout<<res<<endl;return 0;
}


http://www.ppmy.cn/ops/17165.html

相关文章

4月25日 C++day4

#include <iostream> using namespace std;class Person {const string name;int age;char sex; public:Person():name("lisi"){cout << "Person无参构造" << endl;}Person(string name,int age,char sex):name(name),age(age),sex(sex)…

nvm安装及使用(mac)

安装 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash# orwget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash这步会自动在你的文件中添加nvm配置文件. 如果你用的是zsh, 那就是 ~/.zshrc. 如果你用的 bas…

设计模式-创建型模式-工厂模式

工厂模式是一种用来创建对象的模式&#xff0c;它将对象的创建和使用分离开来&#xff0c;使得代码更加灵活和可扩展。 下面代码中CarFactory是一个工厂类&#xff0c;它根据传入的参数来创建不同类型的Car对象。通过工厂模式&#xff0c;在不改变客户端代码的情况下轻松地添加…

GIT 仓库迁移

GIT 仓库迁移 远端仓库迁移 ## 在远端提前创建仓库print-server ## 克隆所有分支 git clone --mirror http://X.X.X.X:8088/Print_Client.git ## 进入本地克隆目录 cd Print_Client.git ## 推送远端 git push --mirror http://X.X.X.X:8088/print/print-server.git本地项目迁…

睫毛膏上架亚马逊销售需要做什么准备 HRIPT / RIPT斑贴试验

睫毛膏上架需要办理&#xff1a;HRIPT / RIPT斑贴试验COA成分分析证书BCOP认证报告&#xff01; 什么是BCOP&#xff1a; 亚马逊美国站对接触眼睛的眼影&#xff0c;液体眼线笔&#xff0c;磁性睫毛&#xff0c;假睫毛等产品&#xff0c;需提供BCOP&#xff08;Bovine Corneal…

密码学基础 -- ECC

目录 1.ECC概述 1.1 汽车行业倾向使用ECC 1.2 ECC的难以理解 2.ECC原理 2.1 椭圆曲线真的不是一个椭圆 2.2 从图形了解ECC 2.3 ECC用法 3.ECC曲线汇总 1.ECC概述 1.1 汽车行业倾向使用ECC 当前公认安全有效的三大类公钥密钥体制分别为基于大数因子分解难题(RSA)、离散…

NLP step by step -- 了解Transformer

Transformer模型 Transformer相关历史 首先我们先看一下有关Transformer模型的发展历史&#xff0c;下面的图是基于Transformer架构的一些关键模型节点&#xff1a; 图片来源于Hugging Face 图片来源于Hugging Face Transformer 架构 于 2017 年 6 月推出。原本研究的重点是…

【Vision Pro应用】分享一个收集Apple Vision Pro 应用的网站

您是否也觉得 Vision Pro 应用程序商店经常一遍又一遍地展示相同的几个 VisionOS 应用程序?许多有趣、好玩的应用程序似乎消失得无影无踪,让人很难发现它们。为了帮助大家更轻松地探索和体验最新、最有趣的 Vision Pro 应用程序,这里分享一个网站https://www.findvisionapp.…