背包问题浅析(most basic version)

2023-10-27

什么是背包问题?

        给你一个背包,能装的物品重量有限,再给你一些物品和它的价值,问你能装下的最大价值是多少。这就是背包问题,其核心思想是动态规划。

怎么做?

        设置一个dp[i][j]数组,表示在0~i个物品中能装下的最大价值。j表示背包的重量。

核心:

dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i])//w[i]表示i的重量,v[i]表示i的价值

注意的点?

        dp数组的初始化

for(int i=1;i<=W;i++)//W表示背包能装的最大重量
{
    //能装进第0个物品时,就把第0个物品装进去
	if(i>=w[0])
		dp[0][i]=v[0];
}

例题:

4412: 采药(medic)

内存限制:128 MB时间限制:1.000 S

评测方式:文本比较命题人:jixun2019

提交:94解决:54

提交提交记录统计侧边提交

题目描述

辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近 最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处 都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时 间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。” 
如果你是辰辰,你能完成这个任务吗?

输入

输入的第一行有两个整数 T(1 <= T <= 1000)和 M(1 <= M <= 100) , 用一个空格隔开,T 代表总共能够用来采药的时间,M 代表山洞里的草药的数目。接下来的 M 行每行包括两个在 1 到 100 之间(包括 1 和 100)的整数,分别表示采摘某株草药的时间 和这株草药的价值。 

输出

输出包括一行,这一行只包含一个整数,表示在规定的时间内,可以采到的草药的最大总价值。 

样例输入 复制

70 3
71 100
69 1
1 2

样例输出 复制

3
#include<bits/stdc++.h>
using namespace std;

int v[1005];
int t[1005];
int dp[1005][1005];

int main()
{
	int T,n;
	cin>>T>>n;
	for(int i=0;i<n;i++)
	{
		cin>>t[i]>>v[i];
	}
	for(int i=1;i<=T;i++)
	{
		if(i>=t[0])
			dp[0][i]=v[0];
	}
	for(int i=1;i<n;i++)
	{
		for(int j=1;j<=T;j++)
		{
			if(j>=t[i])
				dp[i][j]=max(dp[i-1][j],dp[i-1][j-t[i]]+v[i]);
			else
				dp[i][j]=dp[i-1][j];
		}
	}
	cout<<dp[n-1][T];
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

背包问题浅析(most basic version) 的相关文章

  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • KMP,从常规思路到KMP的转变,KMP到底怎么想出来的?

    1 算法简介 KMP算法的名字是由创造出该算法的三位工程师的名字组成的 该算法是为了解决在字符串中匹配某个字串的问题 在我们的生活中经常会遇到在字符串中匹配某个字串的情况 例如我们常在某个文本中查找某个部分 这时候就需要用到字符串匹配字串来
  • vue初始化项目时报错: Error: Cannot find module ‘vue-template-compiler‘

    在初始化Vue3的项目时 按照正常流程创建项目 到最后阶段cmd窗口报错 Error Cannot find module vue template compiler 不能找到 vue template compiler 模块 出现这个问题
  • 解决shell脚本不能激活conda环境

    我想写个bash脚本激活Python3 6环境 使用tensorboard可视化查看数据 conda activate tf tensorboard logdir logs port 10010 傻逼报错 用conda init bash也
  • MySQL中的用户管理

    系列文章目录 MySQL常见的几种约束 MySQL中的函数 MySQL中的事务 MySQL中的视图 MySQL中的索引 文章目录 系列文章目录 前言 一 用户管理 1 用户管理入门 2 用户管理操作及示例 二 权限管理 1 权限管理语法 2
  • Spring Boot logback 日志配置

    Logback 使用 默认情况下 Spring Boot会用Logback来记录日志 并用INFO级别输出到控制台 在运行应用程序和其他例子时 你应该已经看到很多INFO级别的日志了 从上图可以看到 日志输出内容元素具体如下 时间日期 精确
  • 45岁程序员存款80万大胆裸辞,追求人身自由,网友:羡慕嫉妒恨

    最近知乎上的一个问题突然火了 原题如下 对于这个问题你的答案是什么呢 下面的一条回答获得了网友好几千的点赞 一起来看看 答主是一位45岁的程序员 在中型互联网公司 在回答中他称自己已经提出了离职 年底就能彻底歇业 而他的太太42岁 目前也在
  • ArrayList和List的主要区别

    主要区别就是ArrayList不安全 List和ArrayList的用法是不同的 List
  • 2022 CISCN 创新能力实践赛初赛WP

    WP来自齐鲁师范学院网络安全社团 文章目录 MISC ez usb everlasting night babydisk WEB Ezpop online crt PWN login nomal CRY 基于挑战码的双向认证1 基于挑战码的
  • python 爬虫之 爬取网页并保存(简单基础知识)

    抓取网页效果图 代码在最后 基础知识认识 首先导入所需要的库 from fake useragent import UserAgent 头部库 from urllib request import Request urlopen 请求和打开
  • Tomcat远程访问不到的问题

    Android老人学SpringBoot Tomcat在Linux端部署 远程访问不到的解决思路 解决思路 Tomcat在Linux端部署 远程访问不到的解决思路 Linux环境配置 服务器部署等不详细说 默认大家已经做好了 老人小白 今天
  • Sql去重查询数据

    最近在工作过程中 面试过程中 部分求职者或者同事 对sql怎么去重查询 不是太熟练 今天下午忙里偷闲 整理了一下 其实sql基本的查询 还是蛮有意思 下面是我大致整理的几种去重查询 1 存在2条一样的数据 使用distinct eg sel
  • linux下mysql主从复制配置几种情况(库名不同、同步部分库表、忽略某几个表不同步等)

    前提条件 1 主从服务器操作系统版本和位数一致 2 Master 和 Slave 数据库的版本要一致 3 Master 和 Slave 数据库中的数据要一致 4 Master 开启二进制日志 Master 和 Slave 的 server
  • 78. 子集、90. 子集 II、491. 递增子序列

    78 子集 题目描述 给你一个整数数组 nums 数组中的元素 互不相同 返回该数组所有可能的子集 幂集 解集 不能 包含重复的子集 你可以按 任意顺序 返回解集 解答 子集问题其实和组合问题很相似 不同在于子集问题需要在每次取数后都存入结
  • R语言常用的绘图参数

    1 点线结构参数 在plot函数中 使用参数type来控制点线输出结构 参数type的取值及定义 参数取值 描述 type p 点 type l 线 type b 点连线 type o 线穿过点 type h 悬垂线 type s 阶梯线
  • Oracle ORA-00903:表名无效

    order是保留字 如果不小心用了order这个单词就只能加上双引号 order 操作
  • 报错:ABRT 已检测到 ‘1‘ 个问题。预了解详细信息请执行:abrt-cli list --since 1653881497

    文章目录 ABRT 已检测到 1 个问题 预了解详细信息请执行 abrt cli list since 1653881497 报错 表现 解决方案 检测 ABRT 已检测到 1 个问题 预了解详细信息请执行 abrt cli list si
  • python--继承

    1 python继承的基本概念 在程序中 继承描述的是多个类之间的所属关系 如果一个类A里面的属性和方法可以复用 则可以通过继承的方式 传递到类B里 那么类A就是基类 也叫做父类 类B就是派生类 也叫做子类 继承 描述的类与类之间所属关系
  • vue生命周期和整个渲染流程

    vue的生命周期分为8个阶段 beforecreate created beforemount mounted beforeupdate updated beforedestroy destroyed beforeCreate 在实例初始化
  • Cobalt Strike 插件汇总

    https github com 001SPARTaN aggressor scripts https github com 360 A Team CobaltStrike Toolset https github com C0axx Ag
  • 背包问题浅析(most basic version)

    什么是背包问题 给你一个背包 能装的物品重量有限 再给你一些物品和它的价值 问你能装下的最大价值是多少 这就是背包问题 其核心思想是动态规划 怎么做 设置一个dp i j 数组 表示在0 i个物品中能装下的最大价值 j表示背包的重量 核心