P1616 疯狂的采药(洛谷,动态规划递推,完全背包)

先上题目链接:P1616 疯狂的采药

然后放AC代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll f[100010];
ll timee[10010];
ll w[10010];
int main()
{ll t,m;cin>>t>>m;//t总时间,m总草药//time时间,w价值for(ll i=1;i<=m;i++){scanf("%lld",&timee[i]);scanf("%lld",&w[i]);}for(ll i=1;i<=m;i++)for(ll j=timee[i];j<=t;j++){f[j]=max(f[j],f[j-timee[i]]+w[i]);}cout<<f[t]<<endl;
}
疯狂的采药

然后推荐一道类似的题目:采药

不同点在与这题是完全背包,采药那题是01背包,

还有就是疯狂的采药数据比较大,建议用滚动数组,如果用二维数组不知道会不会不行,我没试过.

然后讲一下思路:

假定你已经学过滚动数组01背包了,那么这题就很简单了,相对于普通的01背包来说,如果用滚动数组的话,

对于for的第二维也就是代表剩余空间那一维是从大到小遍历的,这样就能防止每个物品放了超过一次以上,

也就是新数据覆盖旧数据后在这次循环中新数据不会被再覆盖,放在实际层面就是一个物品只能被放一次

 

如果现在把for的第二维也就是代表剩余空间那一维是从小到大遍历,那么新数据也可能被覆盖,也就是一个物品放了后还可能接着放,

这样一来就从01背包转移到完全背包了

 

至于能用滚动数组的原因是第i层只和第i-1层有关

 

转载于:https://www.cnblogs.com/zyacmer/p/9987032.html

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

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

相关文章

MySQL通过source命令执行sql文件

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 IT人员经常会和MySQL打交道&#xff0c;备份和恢复应该是最常用的操作了&#xff0c;那么通过直接执行sql文件无疑是最快捷的方式&#x…

Android系统中通过shell命令实现wifi的连接控制

简介 工作中遇到一个“变态”的需求&#xff0c;在android系统中不通过java层控制wifi的连接&#xff08;主要是修改ap的essid和password&#xff09;&#xff0c;而是需要通过native层实现对wifi的控制。 How 接到这个需求时&#xff0c;第一个想法是如何找到Android nativ…

程序员赚大钱

本文共分三部分&#xff0c;现在打开的是《第一部分》&#xff0c;欢迎继续阅读《第二部分》和《第三部分》1 引子 都说海阔凭鱼跃&#xff0c;又有多少鱼能跃出大海&#xff1f;都说天高任鸟飞&#xff0c;但真正能一飞冲天的&#xff0c;也不过是寥寥数鹰而已&#xff1b;在…

MySQL索引底层实现原理

索引的本质 MySQL官方对索引的定义为&#xff1a;索引&#xff08;Index&#xff09;是帮助MySQL高效获取数据的数据结构。提取句子主干&#xff0c;就可以得到索引的本质&#xff1a;索引是数据结构。 我们知道&#xff0c;数据库查询是数据库的最主要功能之一。我们都希望查询…

解决 A component required a bean of ‘XXX.RoleService‘ that could not be found.

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 springboot工程启动报错&#xff0c;无法启动成功。 dubbo订阅服务失败&#xff0c;提示如下&#xff1a; 出错原因&#xff1a;唉&…

开源个小工具simple-repo

背景 了解android系统的都应该熟悉repo这个工具&#xff0c;google为了方便管理数百个git仓库&#xff0c;开发了repo这个批量管理工具。不过google repo project配置比较麻烦&#xff0c;而通过gitbucket搭建git server则比较傻瓜&#xff0c;所以此处开发了simple-repo这么一…

配合OAuth2进行单设备登录拦截

2019独角兽企业重金招聘Python工程师标准>>> 要进行单设备登录&#xff0c;在其他地点登录后&#xff0c;本地的其他操作会被拦截返回登录界面。 原理就在于要在登录时在redis中存储Session,进行操作时要进行Session的比对。 具体实现&#xff0c;假设我们的OAuth 2…

朱大鸣:中国金融危机到底有多严重

我们到底该不该救助金融机构&#xff0c;中国钞票到底有没有超发&#xff0c;对于这个问题&#xff0c;央行行长周小川日前撰文全面为之辩护&#xff1a;对于第一个问题&#xff0c;他的观点是金融业出现了问题就必须救&#xff0c;否则意味着集体的失灵甚至死亡&#xff1b;中…

C++知识点(六)数组、指针与字符串导学

1.数组 地址连续存放初始化&#xff1a;列出全部初始值后&#xff0c;第1维下标个数可以省略不做初始化&#xff0c;局部变量中为垃圾数据&#xff0c;static变量为0只对一部分进行初始化&#xff0c;其余数值初始化为02.动态内存分配&#xff1a; new delete 3.动态创建数组 n…

Android应用开发—知识点汇总

获取Fragment的context&#xff1a; getActivity().getApplicationContext()或者getActivity()You can use getActivity(), which returns the activity associated with a fragment.The activity is a context (since Activity extends Context).设置TextView的颜色setTextCol…

条件渲染vue

v-if:只渲染一次的情况下&#xff0c;性能更好v-show:频繁切换性能更好 vue虚拟DOM技术 浏览器&#xff1a;渲染引擎&#xff08;慢&#xff09;JS引擎&#xff08;快&#xff09; 用1个JS对象来充当DOM对象&#xff0c;因为JS对象性能比较快&#xff0c;所以用虚拟DOM对象进行…

钱线观察:货币基金T+0驾到 活期存款将死?

导语&#xff1a;即使没有任何投资风险&#xff0c;通胀也在侵蚀居民的财富&#xff0c;现金是不安全的。最近出现的一项业务&#xff0c;货币基金"T0"赎回&#xff0c;意味着货币基金可以像活期存款一样即时取现&#xff0c;而其收益率普遍高于活期存款。因此有人认…

git stash和git stash pop

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 git stash 可用来暂存当前正在进行的工作&#xff0c; 比如想pull 最新代码&#xff0c; 又不想加新commit&#xff0c; 或者另外一种情…

CentOS 7.0 上安装和配置 VNC 服务器

作为一个系统管理员&#xff0c;大多数时间是通过网络管理服务器的。在管理服务器的过程中很少会用到图形界面&#xff0c;多数情况下我们只是用 SSH 来完成我们的管理任务。在这篇文章里&#xff0c;我们将配置 VNC 来提供一个连接我们 CentOS 7 服务器的方法。VNC 允许我们开…

Android应用开发—TextView的动态创建

动态创建TextView的两种方式&#xff1a; 下面介绍两种创建方式&#xff1a; 在drawable里面创建共同依赖的background.xml文件&#xff0c;里面设置shape来设置文本框的一些特殊效果&#xff1a; eg&#xff1a; <?xml version"1.0" encoding"utf-8"…

Mongo DB 简单搭建和部署

1.先下载源代码包 官网下载地址&#xff1a;http://www.mongodb.org/downloads 2.解包tar xf mongodb-linux-x86_64-rhel62-3.2.7.tgz 3.把包移动到 /usr/local/mongodb mv mongodb-linux-x86_64-rhel62-3.2.7/ /usr/local/mongodb 指定同一时间最多可开启的文件数&#xff08…

运算符优先级 必熟记,放到心里

优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 &#xff08;表达式&#xff09;/函数名(形参表) . 成员选择&#xff08;对象&#xff09; 对象.成员名 -> 成员选择&#xff08;指针&#xff0…

可持久化平衡树(FHQ Treap)

两个最基本的操作 merge合并 split分割 merge 把两棵treap合并成一棵treap&#xff0c;要满足T1最大值要比T2最小值小&#xff0c;比较将随机数值key值更大的作为合并后的根 假设T1作为根节点作为新子树的根&#xff0c;左子树不变&#xff0c;右子树对T1原来的右子树与T2再递归…

Git 分支管理-git stash 和git stash pop

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 合并分支&#xff0c;冲突是难免的&#xff0c;在实际协作开发中我们遇到的情况错综复杂&#xff0c;今天就讲两个比较重要的命令使用gi…