[NOIP2005 普及组] 采药

题目描述

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

如果你是辰辰,你能完成这个任务吗?

输入格式

第一行有 \(2\) 个整数 \(T\)(\(1 \le T \le 1000\))和 \(M\)(\(1 \le M \le 100\)),用一个空格隔开,\(T\) 代表总共能够用来采药的时间,\(M\) 代表山洞里的草药的数目。

接下来的 \(M\) 行每行包括两个在 \(1\) 到 \(100\) 之间(包括 \(1\) 和 \(100\))的整数,分别表示采摘某株草药的时间和这株草药的价值。

输出格式

输出在规定的时间内可以采到的草药的最大总价值。

样例 #1

样例输入 #1

70 3
71 100
69 1
1 2

样例输出 #1

3

提示

【数据范围】

  • 对于 \(30\%\) 的数据,\(M \le 10\);
  • 对于全部的数据,\(M \le 100\)。

【题目来源】

NOIP 2005 普及组第三题

本题思路(pull+自我滚动)

01背包模板题,设计状态dp[N]为时间t可以采得药的最大价值,转移为当前状态不采当前草药(上一层),和采集当前草药(减去采集草药的时间,加上草药的价值):

dp[j] = max(dp[j], dp[j - t[i]] + w[i])

其中问题

采用自我滚动方式,要注意顺序问题,即用到的

dp[j - t[i]] + w[i]

是之前更新过的值,此时则要采用从大到小枚举来消除影响

AC_code(pull型)

#include <iostream>

using namespace std;

const int N = 110, M = 1010;

int dp[M], t[N], w[N];
int n, m; void input() {
cin >> m >> n;
for(int i = 1; i <= n; ++ i) cin >> t[i] >> w[i];
} void solve() {
for(int i = 1; i <= n; ++ i)
for(int j = m; j >= t[i]; -- j)
dp[j] = max(dp[j], dp[j - t[i]] + w[i]);
} int main(){
input(); solve();
cout << dp[m] << endl;
return 0;
}

luogu P1048 [NOIP2005 普及组] 采药的更多相关文章

  1. 动态规划 洛谷P1048 [NOIP2005 普及组] 采药

    洛谷P1048 [NOIP2005 普及组] 采药 洛谷的一个谱架-的题目,考的是01背包问题,接下来分享一下我的题解代码. AC通过图: 我的代码: 1 //动态规划 洛谷P1048 [NOIP20 ...

  2. [NOIP2005普及组]采药(01背包)

    题目描述 描述 辰辰是个很有潜能.天资聪颖的孩子,他的梦想是称为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到个到处都是草药的山洞里对他说 ...

  3. NOIP2005普及组第3题 采药 (背包问题)

    NOIP2005普及组第3题 采药 时间限制: 1 Sec  内存限制: 128 MB提交: 50  解决: 23[提交][状态][讨论版][命题人:外部导入] 题目描述 辰辰是个天资聪颖的孩子,他的 ...

  4. [NOIP2005] 普及组 循环

    陶陶摘苹果 校门外的树 采药 以上三道都不是重点 循环 题目描述 乐乐是一个聪明而又勤奋好学的孩子.他总喜欢探求事物的规律.一天,他突然对数的正整数次幂产生了兴趣. 众所周知,2的正整数次幂最后一位数 ...

  5. NOIP2005普及组第4题 循环

    NOIP2005普及组第4题 循环 时间限制: 1 Sec  内存限制: 128 MB提交: 27  解决: 6[提交][状态][讨论版][命题人:外部导入] 题目描述 乐乐是一个聪明而又勤奋好学的孩 ...

  6. P1046 [NOIP2005 普及组] 陶陶摘苹果

    题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个 30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试. 现在已 ...

  7. 【动态规划】Vijos P1104 采药(NOIP2005普及组第三题)

    题目链接: https://vijos.org/p/1104 题目大意: T时间,n个物品,每个耗时ti,可获得收益ci,求最大收益. 题目思路: [动态规划] 01背包裸题.一维二维都过了,放个一维 ...

  8. Luogu 3957 [NOIP2017]普及组 跳房子

    写了好久,感觉自己好菜,唉…… 首先发现这个$g$的取值具有单调性,可以想到二分答案,然后考虑用$dp$来检验,这样子可以写出朴素的转移方程: 设$f_i$表示以$i$结尾的最大价值,那么有$f_i ...

  9. Luogu 5017 NOIP2018普及组T3 摆渡车 (斜率优化 + 必要的转移进行剪枝)

    题意: 有 n 名同学要乘坐摆渡车从人大附中前往人民大学,第 i 位同学在第 ti​ 分钟去 等车.只有一辆摆渡车在工作,但摆渡车容量可以视为无限大.摆渡车从人大附中出发. 把车上的同学送到人民大学. ...

  10. 题解【洛谷P1046】[NOIP2005普及组] 陶陶摘苹果

    [NOIP2005] 陶陶摘苹果 首先,我们用一个数组s[11]存储每个苹果的高度. 然后,用a表示陶陶的身高. 接着,用a+30与s[i]比较,大于则计数器加一. 最后,输出计数器的值即可. #in ...

随机推荐

  1. ZeRO:一种去除冗余的数据并行方案

    ZeRO:一种去除冗余的数据并行方案 目前训练超大规模语言模型主要有两条技术路线: TPU + XLA + TensorFlow/JAX GPU + Pytorch + Megatron + Deep ...

  2. Summary of Indexing operation in DataFrame of Pandas

    Summary of Indexing operation in DataFrame of Pandas For new users of pandas, the index of DataFrame ...

  3. Python内置库itertools简单学习

    该库为满足特定需要的比较高效的迭代器内置库,在数据科学中的应用也不少,故有必要了解一下: import itertools import sys 无限迭代器(Infinite iterators) I ...

  4. 虚拟机搭建CDH6详细过程_三节点为例

    准备工作 一.安装虚拟机.centos 1.安装VMwareWorkstation虚拟化软件 首先我们使用VMwareWorkstation来快速的进行虚拟机的新建. 本文使用的版本为VMwareWo ...

  5. vue3和ts和vue-cropper 实现图片裁剪预览

    ​​Vue-Cropper​​ 是一个基于 Vue.js 的图片裁剪组件库,专为 Web 应用设计.当你在网上搜索的时候发现还有一个叫cropper的库,下面是他们的区别: 二.快速上手 //npm ...

  6. C#实现SSE通信方式的MCP Server

    前面的课程,我们使用MCP Server,用的是网络上魔搭提供的. 下面我们一起来实现,用C#实现自己的MCP Server. MCP Server通信方式支持SSE.Stdio. 下面我们先实现SS ...

  7. ssh免密登录设置 (普通用户和root用户)

    普通用户如何设置免密码ssh到另一台服务器 一.场景描述: 我有A,B两台服务器,需要实现让A服务器的普通用户(ftpuser)不用输入密码就可以连接到B的(ftpuser)(此处A,B服务器的账户可 ...

  8. 「Log」2023.8.16 小记

    序幕 早上昏迷,九点才到校,少听了四道题,问题不大. 点咖啡喝. SAM 题也抽象.线段树合并,不会. 写个 AC 自动机板子. \(\color{royalblue}{P3808\ [模板]AC\ ...

  9. ArkUI-X与Android消息通信

    平台桥接用于客户端(ArkUI)和平台(Android或iOS)之间传递消息,即用于ArkUI与平台双向数据传递.ArkUI侧调用平台的方法.平台调用ArkUI侧的方法.本文主要介绍Android平台 ...

  10. ESP32-Arduino物联网工控(二)串口转TCP转发机:WIFI连接,手机连WIFI配置热点名字

    先上代码,欢迎伸手党. #include <WiFi.h> #include <ESPmDNS.h> #include <WebServer.h> #include ...