分组背包问题学习笔记 AcWing 9. 分组背包问题

原题

有 N� 组物品和一个容量是 V� 的背包。

每组物品有若干个,同一组内的物品最多只能选一个。
每件物品的体积是 vij���,价值是 wij���,其中 i� 是组号,j� 是组内编号。

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

输出最大价值。

输入格式

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

接下来有 N� 组数据:

  • 每组数据第一行有一个整数 Si��,表示第 i� 个物品组的物品数量;
  • 每组数据接下来有 Si�� 行,每行有两个整数 vij,wij���,���,用空格隔开,分别表示第 i� 个物品组的第 j� 个物品的体积和价值;
输出格式

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

数据范围

0<N,V≤1000<�,�≤100
0<Si≤1000<��≤100
0<vij,wij≤1000<���,���≤100

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

原题链接

传送门 

代码

#include<bits/stdc++.h>
using namespace std;const int N=110;int s[N];
int v[N][N],w[N][N];
int f[N];int main()
{int n,m;scanf("%d%d",&n,&m);for(int i=0;i<n;i++){scanf("%d",&s[i]);for(int j=0;j<s[i];j++){scanf("%d%d",&v[i][j],&w[i][j]);}}for(int i=0;i<n;i++){for(int j=m;j>=0;j--){for(int k=0;k<s[i];k++){if(v[i][k]<=j){f[j]=max(f[j],f[j-v[i][k]]+w[i][k]);}}}}printf("%d\n",f[m]);return 0;
}

总结

1.首先是数据范围比较小,只有100,可以使用N^3时间复杂度的算法通过这道题

2.给定的是n组物品,每一组物品里面有多件物品,一件物品只能选择一次,本质上还是01背包,选或者不选,两种情况,所以第二层循环还是从大往小枚举背包容量

3.每一组里面只能选择一件物品

4. 更多的理解之后有新的感想再补充

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/164180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PC8233(CC/CV控制)高耐压输入5V/3.4A同步降压电路内建补偿带恒流恒压输出

概述 PC8233&#xff08;替代CX8853&#xff09;是一款同步降压调节器,输出电流高达3.4A,操作范围从8V到32V的宽电源电压。内部补偿要求最低数量现成的标准外部组件。PC8233在CC&#xff08;恒定输出电流&#xff09;模式或CV&#xff08;恒定输出电压&#xff09;模式&#x…

【前端】前端监控⊆埋点

文章目录 前端监控分为三个方面前端监控流程异常监控常见的错误捕获方法主要是 try / catch 、window.onerror 和window.addEventListener 等。Promise 错误Vue 错误React 错误 性能监控用户行为监控常见的埋点方案来源 前端监控分为三个方面 异常监控&#xff08;监控前端页面…

基于element-ui后台模板,日常唠嗑

后面会补充github地址 文章目录 目录 文章目录 案例说明 1.引入库 2.创建布局组件 3.创建布局组件 4.菜单效果展示 5.创建顶部组件 5.创建顶部面包屑组件 6.创建内容区域组件 7.效果总览 7.布丁&#xff08;实现一些小细节&#xff09; 前言一、pandas是什么&#xff1f;二、使…

CentOS7中升级OpenSSL详细教程

文章目录 一. 引言二. 升级前的准备1.备份现有配置2. 检查系统版本3. 安装依赖 三. OpenSSL安装四. 验证 一. 引言 OpenSSL: 是用于保护数据安全的重要工具。它能提供加密&#xff0c;解密等多项功能。 然而&#xff0c;随着技术的发展和新的安全漏洞的出现&#xff0c;使用最…

管理类联考——英语二——备考 100 句涵盖所有词汇

全中 在海里的这个地区&#xff0c;熊猫们喜欢就着苏打碗豆喝茶。而大洋州的民兵则喜欢经过半岛&#xff0c;带着编剧本的公式上餐厅去。附件的电影院里有额外的歌剧和香蕉&#xff0c;这一时代的斑马们被外面的天线所吸引。实验室里的蟹想用它的肋骨去戳四肢象灯炮的小羊。但…

千梦网创:创业,一场游戏一场梦

创业这件事就好比一场养成类游戏&#xff0c;而我们自己就是游戏主角。 这个游戏有一个特殊之处在于&#xff1a;SSS级装备有穿戴等级设定&#xff0c;就算你氪重金买到了一把神器&#xff0c;自身阅历不够也根本无法发挥它的强大威力而只能当个装饰。 这就要求我们真正沉浸在…

催单开发信怎么写?外贸人如何写催单邮件?

年末催单开发信编写技巧&#xff1f;最有效的催单话术有哪些&#xff1f; 催单开发信成为了企业间日常沟通的重要一环。这些信件不仅有助于促进业务发展&#xff0c;还可加强供应链的协调&#xff0c;确保货物及时送达。蜂邮EDM将介绍如何写一封出色的催单开发信&#xff0c;以…

ubuntu20.04安装多版本cuda,切换版本

1. 安装cuda toolkit: 下载网站 https://developer.nvidia.com/cuda-11.3.0-download-archive 选择版本&#xff0c;这里选择11.3 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run给cuda权限: chmod x…

Linux加强篇001-部署Linux系统

目录 一、前言 1.1准备工具 1.2安装配置VM虚拟机 1.3安装软件 1.4系统初始化进程 1.5重置root密码 二、巩固练习 1&#xff0e;为什么建议读者在下载系统文件后先进行校验而不是直接安装呢&#xff1f; 2&#xff0e;使用虚拟机安装Linux系统时&#xff0c;为什么要先…

科技与艺术如何交织出“理想之家”?三星电视给出家电行业最优解答

作者 | 曾响铃 文 | 响铃说 理想的家&#xff0c;是什么样子? 关于这个问题&#xff0c;社交媒体上有形形色色的答案。很多人的梦中情屋是原木风、奶油色&#xff0c;点缀着绿意盎然的植物&#xff1b;还有一些人的Dream house是用全屋智能将科技感拉满&#xff0c;再配上打…

OpenStack云计算平台-计算服务

目录 一、计算服务概览 二、安装并配置控制节点 1、先决条件 2、安全并配置组件 3、完成安装 三、安装和配置计算节点 1、安全并配置组件 2、完成安装 四、验证操作 一、计算服务概览 使用OpenStack计算服务来托管和管理云计算系统。OpenStack计算服务是基础设施即服务…

2024东北师范大学计算机考研分析

24计算机考研|上岸指南 东北师范大学 信息科学与技术学院位于长春净月国家高新技术产业开发区&#xff0c;毗邻风光秀美的净月潭国家森林公园。 信息科学与技术学院由原“计算机科学与信息技术学院”和“信息与软件工程学院”于2017年根据学校事业发展需要整合形成。学院设有…

全球三大网络安全威胁

网络安全IP数据云 - 免费IP地址查询 - 全球IP地址定位平台威胁日益复杂&#xff0c;涵盖了多个层面&#xff0c;从个人用户到大型企业&#xff0c;都面临着不同形式的网络安全威胁。以下是当前全球范围内广泛认可的三大网络安全威胁&#xff1a; 1. 恶意软件和病毒攻击&#x…

【沁恒蓝牙mesh】OTA功能详解

本文基于沁恒CH58X 单片机的OTA功能 一键三连&#xff0c;收藏点赞评论 私信可获取原文 &#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是喜欢记录零碎知识点的小菜鸟。&#x1f60e;&#x1f4dd; 个人主页&#xff1a;欢迎访问我的 Ethern…

不可错过的10个即时通讯软件开发技巧

欢迎来到本文&#xff0c;作为即时通讯软件开发领域的专家&#xff0c;我将为您分享十个不容错过的开发技巧。无论您是新手开发者还是有经验的专业人士&#xff0c;这些技巧都将帮助您实现卓越的即时通讯软件。让我们开始吧&#xff01; 1. 选择适当的开发平台 在开始开发之前…

注意:怎么用JMeter操作MySQL数据库?看完秒懂!

近期用JMeter做接口测试&#xff0c;遇到了一个需要用到数据数据库的场景&#xff1a;一个关于数据报告的页面&#xff0c;需要将数据库里面的数据求和或者取均值之后&#xff0c;展示出来。 如果要断言的话&#xff0c;需要连接数据库&#xff0c;通过写sql语句&#xff0c;将…

jmeter中调用python代码

1、安装pyinstaller pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller 2、将py脚本打包 pyinstaller -F venv/get_image/OCR_jmeter_api.py 3、jmeter中添加OS Process Sampler并调用dist下的程序 4、执行jmeter

删除链表的倒数第N个结点

题目&#xff1a; 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5]示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xff1a;…

机器学习实战-第5章 Logistic回归

Logistic 回归 概述 Logistic 回归 或者叫逻辑回归 虽然名字有回归,但是它是用来做分类的。其主要思想是: 根据现有数据对分类边界线(Decision Boundary)建立回归公式,以此进行分类。 须知概念 Sigmoid 函数 回归 概念 假设现在有一些数据点,我们用一条直线对这些点进行…

浅析基于智能音视频技术的城市重要场馆智能监控系统设计

了解旭帆科技的朋友都知道&#xff0c;旭帆科技一直都乐于和大家分享各类场景的视频解决方案&#xff0c;今天小编就基于智能音视频技术的城市重要场馆智能监控系统设计和大家探讨一下。 基于智能音视频技术的城市重要场馆智能监控系统设计&#xff0c;主要包含以下要素&#x…