当前位置: 首页 > news >正文

多重背包c++

题目描述

有N种物品和一个容量是V的背包。
第i种物品最多有si件,每件体积是vi,价值是wi。
求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。
输出最大价值。

输入

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

接下来有 N 行,每行三个整数 vi,wi,si,用空格隔开,分别表示第 i 种物品的体积、价值和数量。

0<N,V≤100
0<vi,wi,si≤100

输出

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

样例输入

4 10
3 2 2
4 3 2
2 2 1
5 3 4

样例输出

8

代码如下:

(只比01背包多了一点)

#include<bits/stdc++.h>
using namespace std;
long long n,maxv,v1,w1,s1,v[10001],w[10001];
int main(){cin>>n>>maxv;long long k=0;for(int i=1;i<=n;i++){cin>>w1>>v1>>s1;for(int j=1;j<=s1;j++){k++;v[k]=v1;w[k]=w1;}}for(int i=1;i<=k;i++){for(int j=maxv;j>=w[i];j--){dp[j]=max(dp[j],v[i]+dp[j-w[i]]);}}cout<<dp[maxv];return 0;
}

(7~14行把多重背包转成01背包)

http://www.lryc.cn/news/417234.html

相关文章:

  • kernel input事件测试程序
  • gd32 i2c 中断 主机从机双向通信例程
  • 程序员在AI时代:重塑核心竞争力,共舞智能未来
  • apex发送邮件中显示饼状图和条形图
  • 【HarmonyOS NEXT星河版开发学习】小型测试案例07-弹性布局小练习
  • Sparksql array相关函数
  • 软件测试学习笔记
  • Centos 8系统ext4文件系统类型进行扩容缩容 (LVM)
  • 常考常考高频率
  • Linux项目环境的搭建 (Red hat 9.0Linux操作系统)
  • Study--Oracle-08-ORACLE数据备份与恢复(一)
  • FreeIPA安装
  • mysql数据库:SQL语言基础和基本查询
  • strimzi operator 部署kafka集群(可外部访问)
  • 【网络安全】探索AI 聊天机器人工作流程实现RCE
  • 虚拟DOM、Vue渲染流程
  • centos7 启动python后端服务与停止服务的sh脚本
  • 访问网站显示不安全怎么办?
  • Scala与集合框架:高效数据处理的利器
  • 基于 JWT 的模拟登录爬取实战
  • 力扣(2024.08.06)
  • 如何快速入门 PyTorch ?
  • Qt 快速部署环境(windeployqt.exe)
  • 白骑士的PyCharm教学实战项目篇 4.2 数据分析与可视化
  • el-form-item,label在上方显示,输入框在下方展示
  • Centos7.9操作系统kdump crash文件vmcore未生成问题
  • 找不到符号 javax.servlet.WriteListener
  • 智能仪表板DevExpress Dashboard v24.1 - 新增级联参数过滤
  • 计算机网络-CSP初赛知识点整理
  • MySQL第1讲--详细安装教程和启动方法