【动态规划法】0-1背包问题

简介: 【动态规划法】0-1背包问题

  问题如下:

问题描述:

给定n个重量为wi,价值为vi的物品(i=1,2,…,n),以及一个重量为W的背包,找出其中最有价值的物品子集,并且能全部放入背包中。

输入样例:(第一行是背包重量上限,第二、三、四、五行是物品的重量和价值)

10

7 42

3 12

4 40

5 25

输出样例:(能够放入背包的物品最大价值)

65

代码如下:

#include <iostream>
#include <algorithm>//max()函数头文件 
#include <cstring>//memset函数头文件 
using namespace std;
#define N 100
int main(){
  int dp[N][N];
  memset(dp,0,sizeof(dp)); 
  int n=4;//共四件物品 
  int BagMax;cin>>BagMax;//输入背包最大容量 
  int height[N];int value[N];//物品重量数组,物品价值数组 
  int MaxValue=0;
  for(int i=1;i<=n;i++){//应该从1开始,下方初始化操作dp[i][j]=dp[i-1][j];  i需要>=1 
    cin>>height[i]>>value[i];//输入物品的重量、价值 
  } 
  for(int i=1;i<=n;i++){//仅对i个物品选择  
    for(int j=0;j<=BagMax;j++){//穷尽背包空间 
      dp[i][j]=dp[i-1][j];//初始化
      if(height[i]<=j){//第i个物品重量在背包可容纳范围内 
        dp[i][j]=max(dp[i-1][j],dp[i-1][j-height[i]]+value[i]);
        if(dp[i][j]>MaxValue){MaxValue=dp[i][j];} 
      } 
    }
  } 
  cout<<MaxValue<<endl;
  return 0;
}

image.gif


目录
相关文章
|
存储 数据处理
GDPR
【10月更文挑战第7天】GDPR
763 7
|
存储 缓存 NoSQL
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
375 4
|
JavaScript
vue 3 element组件el-image的坑
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃ 发现了这个坑,立马来发个文章水一水
612 0
|
机器学习/深度学习 人工智能 运维
智能化运维:提升IT系统管理效率的新范式####
在数字化转型加速的今天,企业IT系统的复杂性日益增加,传统的运维模式已难以满足高效、稳定的业务需求。本文探讨了智能化运维(AIOps)如何通过融合人工智能、大数据分析和自动化工具,重塑IT运维流程,显著提升管理效率和服务质量,为企业带来前所未有的运营洞察力和响应速度。 ####
|
安全 测试技术 Python
零操作,高效下载:利用Playwright和Python完成文件下载
Playwright是Microsoft开发的跨浏览器自动化测试工具,能模拟用户操作,包括文件下载。在Python中,它提供`expect_download()`来处理文件下载,无需额外工具。下载开始时触发事件,完成后可通过`download.path()`获取路径。下载相关操作包括取消、删除、获取错误信息、所属页面、文件名、URL等。示例代码展示了如何下载pytest的压缩文件,简化了web自动化测试中的文件下载场景。
|
C语言 C++
C语言中特殊的指针[使用禁忌]
C语言中特殊的指针[使用禁忌]
117 0
基于socket实现java Swing简易聊天室[附完整源码]
基于socket实现java Swing简易聊天室[附完整源码]
253 1
|
安全 物联网 物联网安全
物联网安全风险分析
### 物联网安全概览 #### 背景 物联网设备因其默认安全设置薄弱,成为黑客攻击目标。随着OT网络中物联网角色增多,这些设备临近关键系统,攻击者利用其发起攻击。 #### 物联网定义 物联网(IoT)是通过信息传感设备连接物品与互联网,实现智能化识别、定位、跟踪的网络。涵盖智能家居、可穿戴设备到复杂工业系统。 #### 攻击者偏好 物联网设备易受攻击,2022年针对物联网的网络攻击大幅增长,如DDoS攻击和恶意软件事件。物联网端点的安全疏忽使其成为恶意软件传播途径。 #### 制造业面临风险 制造业因物联网设备被攻击,导致勒索软件攻击增加,因生产中断造成的损失更大。
物联网安全风险分析
|
人工智能 自然语言处理 搜索推荐
谷歌 ai人工智能平台叫什么?请记住答案是:Gemini
Gemini 是 Google 开发的一个大型AI语言模型 ,代表着人工智能领域的一项重大进步。它是一个强大的工具,旨在理解和生成人类语言,并具备广泛的功能,可以帮助人们完成各种任务,从创作不同类型的文本到回答复杂的问题,再到翻译语言等等。
|
Linux Windows
Jmeter设置中文语言和配置https
Jmeter设置中文语言和配置https
521 0
Jmeter设置中文语言和配置https