问题 B: 采药

时间限制: 1 Sec  内存限制: 128 MB
提交: 67  解决: 49

题目描述

辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。

医师为了判断他的资质,给他出了一个难题。

医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间, 在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”

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

输入

第 一行有两个整数T(1 <= T <= 1000)和M(1 <= M <= 100),用一个空格隔开,

T代表总共能够用来采药的时间,M代表山洞里的草药的数目。

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

输出

一个整数,表示在规定的时间内,可以采到的草药的最大总价值。

样例输入

70 3

71 100

69 1

1 2

样例输出

3

数据规模

对于30%的数据,M <= 10;

对于全部的数据,M <= 100。

经验总结

经典的01背包问题,状态转移方程: dp [ v ] = max ( dp [ v ] , dp [ v - t[ i ] ] + v[ i ] )
其中 t [ i ] 表示草药的采集时间 , v [ i ] 指草药的价值。

正确代码

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxv=1010,maxn=110;
int dp[maxv],t[maxn],v[maxn];int main()
{int T,n;while(~scanf("%d %d",&T,&n)){for(int i=1;i<=n;++i){scanf("%d %d",&t[i],&v[i]);}for(int i=1;i<=n;++i){for(int x=T;x>=t[i];--x){dp[x]=max(dp[x],dp[x-t[i]]+v[i]);}}int max=0;for(int x=0;x<=T;++x){if(dp[x]>max){max=dp[x];}}printf("%d\n",max);  }return 0;
}

24339 Problem B 采药相关推荐

  1. codeup墓地目录(算法笔记习题刷题笔记)

    在线codeup contest 地址:http://codeup.cn/contest.php Contest100000575 - <算法笔记>3.1小节--入门模拟->简单模拟 ...

  2. codeup墓地目录

    代码内容为原创C++ 在线codeup contest 地址:http://codeup.cn/contest.php Contest100000575 - <算法笔记>3.1小节--入门 ...

  3. P1616 疯狂的采药(python3实现)--80分

    疯狂的采药 - 洛谷 """ P1616 疯狂的采药(python3实现)--80分 https://www.luogu.com.cn/problem/P1616&quo ...

  4. 动态规划 背包问题小结 0-1背包(采药 九度第101题) 完全背包(Piggy-Bank POJ 1384) 多重背包(珍惜现在,感恩生活 九度第103题)

    本小结介绍0-1背包.完全背包以及多重背包问题 记忆要点: 0-1背包:二维数组情况下,顺序遍历体积或者倒序均可以                降维情况下需倒序遍历体积 完全背包:数组降维+顺序遍历 ...

  5. linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.

    所有的base 都要取消注释 mirrorlist 加上注释 另外所有的enable都要设为零 目录 今天是要yum命令安装EPEL仓库后 yum install epel-release 突然发现y ...

  6. A + B Problem

    1001: A + B Problem Description 计算 A + B. Input 多组测试数据,每组测试数据占一行,包括2个整数. Output 在一行中输出结果. Sample Inp ...

  7. Error:(49, 1) A problem occurred evaluating project ':guideview'. Could not read script 'https://r

    出现问题如下: Error:(49, 1) A problem occurred evaluating project ':guideview'. > Could not read script ...

  8. #418 Div2 Problem B An express train to reveries (构造 || 全排列序列特性)

    题目链接:http://codeforces.com/contest/814/problem/B 题意 : 有一个给出两个含有 n 个数的序列 a 和 b, 这两个序列和(1~n)的其中一个全排列序列 ...

  9. ADPRL - 近似动态规划和强化学习 - Note 3 - Stochastic Infinite Horizon Problem

    Stochastic Infinite Horizon Problem 3.Stochastic Infinite Horizon Problem 定义3.1 无限范围的马尔可夫决策过程 (Marko ...

最新文章

  1. 阿里自动驾驶新突破!达摩院自研ISP图像处理器大幅提升安全性
  2. java怎么修改fxml,JavaFX FXML修改列表
  3. Intel汇编语言程序设计学习-第五章 过程-上
  4. U3D assetbundle加载
  5. BestCoder Round #91 1001 Lotus and Characters
  6. 前端学习(3249):总结生命周期
  7. Instagram: 用Django服务30亿用户
  8. McAfee麦咖啡8.5企业版高级教程
  9. c语言行列坐标是先行后j,C语言课后习题参考答案
  10. 巫师3储物箱在哪_巫师三孤岩宝箱在哪 | 手游网游页游攻略大全
  11. 谈谈公司内部的技术分享
  12. tp-link tl-wr740n 虚拟服务器,TP-Link TL-WR740N无线wifi无线桥接怎么设置 | tplogin.cn
  13. 远程唤醒、WOL、Magic_Packet
  14. There appears to be trouble with your network connection.Retrying
  15. 数据库设计、查询规范及常用SQL语句
  16. 微信气泡主题设置_微信猫和老鼠主题皮肤怎么设置 华为手机设置气泡主题方法...
  17. dns服务器未响应网速卡,DNS服务器未响应且网速突然变的不好是什么原因 怎样解决...
  18. jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详细讲解
  19. 点云引导滤波算法实现
  20. 手机版跑跑卡丁车RainbowCastle3

热门文章

  1. java-图书Marc文件导入处理
  2. Scratch简单实现大鱼吃小鱼
  3. codeforces All the Vowels Please
  4. css翘边阴影图片,【CSS】翘边阴影
  5. android开发环境安装
  6. 高中数学数列公式7种方法(方法全,例子全,归纳细)
  7. 使用pnpm+vue-cli,出现报错:Error: command failed: pnpm install --reporter silent --shamefully-hoist
  8. 纯流量卡(物联卡)的套路,你了解多少
  9. python 拦截windows弹窗广告_win10系统怎样拦截各种软件的广告弹窗
  10. 新导部队营房室内人员定位系统解决方案