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

蓝桥杯19681 01背包

问题描述

有 N 件物品和一个体积为 M 的背包。第 i 个物品的体积为 vi​,价值为 wi​。每件物品只能使用一次。

请问可以通过什么样的方式选择物品,使得物品总体积不超过 M 的情况下总价值最大,输出这个最大价值即可。

输入格式

第一行输入两个正整数 N,M。(1≤N,M≤1000)

接下来 N 行,每行输入两个整数 vi,wi​。(0≤vi,wi≤1000)

输出格式

输出一个整数,表示符合题目要求的最大价值。

样例输入

4 5
1 2
2 4
3 4
4 5

样例输出

8

说明

你可以选择第二个物品和第三个物品。

 

 分别考虑前1~4个物品时,背包容量分别为1~5时的最大价值:

#include<iostream>
#include<algorithm>
using namespace std;const int N = 1e3+10;
int n, m;  //n件物品,体积为m 
int v[N], w[N];
int dp[N];  //dp[j]表示背包容量为j时的最大价值int main()
{cin>>n>>m;for(int i=1; i<=n; ++i) cin>>v[i]>>w[i];for(int i=1; i<=n; ++i)  //遍历每个物品{for(int j=m; j>=0; j--)  //逆向遍历背包容量,确保每个物品只被考虑一次{//如果当前物品能放入if(j>=v[i]){//不选当前物品:保持dp[j]不变//选当前物品:dp[j-v[i]] + w[i]dp[j] = max(dp[j], dp[j-v[i]] + w[i]);}} }cout<<dp[m];return 0;
}
http://www.xdnf.cn/news/7061.html

相关文章:

  • 医学影像开发的开源生态与技术实践:从DCMTK到DICOMweb的全面探索
  • NC61 两数之和【牛客网】
  • 写spark程序数据计算( 数据库的计算,求和,汇总之类的)连接mysql数据库,写入计算结果
  • COCO数据集神经网络性能现状2025.5.18
  • 【数据结构】2-3-4 单链表的建立
  • 大学量化投资课程
  • C 语言学习笔记(函数)
  • 华为OD机试真题——最小循环子数组 (2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 2025/5/18
  • 非线性1 修改
  • Jsoup库和Apache HttpClient库有什么区别?
  • 数据库DDL
  • 普通用户的服务器连接与模型部署相关记录
  • Qt 信号和槽-核心知识点小结(11)
  • 建一个结合双向长短期记忆网络(BiLSTM)和条件随机场(CRF)的模型
  • 什么是时间戳?怎么获取?有什么用
  • SQL练习(12/81)
  • C++ map容器: 插入操作
  • 一次页面假死分析
  • SpringBoot3+AI
  • Text models —— BERT,RoBERTa, BERTweet,LLama
  • 项目制作流程
  • html文件cdn一键下载并替换
  • 第五部分:阶段项目 4:构建 RESTful API 服务器
  • 创建指定版本的vite项目
  • 《Python星球日记》 第88天:ChatGPT 与 LangChain
  • ADB基本操作和命令
  • 【机器学习】工具入门:飞牛启动Dify Ollama Deepseek
  • 开始学习做游戏,就现在
  • 短剧小程序系统开发源码上架,短剧项目市场分析