P1005 采药
时间: 1000ms / 空间: 131072KiB / Java类名: Main

背景

NOIP2005复赛普及组第三题

描述

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

输入格式

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

输出格式

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

测试样例1

输入

70 3 
71 100 
69 1 
1 2

输出

3

备注

对于30%的数据,M <= 10;对于全部的数据,M <= 100。
 

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
int f[],t,n,a[],b[],ans=;
//f[j]表示只考虑前i种草药,用j的时间能采到的最大总价值,然后第i个草药的时间为ai,价值为bi,推出方程。
//dp 01背包
int main()
{
cin>>t>>n;
for(int i=;i<=n;i++)scanf("%d%d",&a[i],&b[i]);
f[]=; for(int i=;i<=n;i++)
{
for(int j=t;j>=a[i];j--)
{
f[j]=max(f[j],f[j-a[i]]+b[i]);
}
}
for(int i=;i<=t;i++)ans=max(ans,f[i]);
cout<<ans<<endl;
return ;
}

方法一

方法二

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
int f[][],t,n,a[],b[],ans=;
int main()
{
cin>>t>>n;
for(int i=;i<=n;i++)scanf("%d%d",&a[i],&b[i]);
f[][]=;
for(int i=;i<=n;i++)
{
for(int j=t;j>=;j--)
{
if(j-a[i]>=)
f[i][j]=max(f[i-][j],f[i-][j-a[i]]+b[i]);
else f[i][j]=f[i-][j];
}
}
for(int i=;i<=n;i++)for(int j=;j<=t;j++)ans=max(ans,f[i][j]);
cout<<ans<<endl;
return ;
}

//其实都一样

P1005 采药的更多相关文章

  1. [TYVJ] P1005 采药

    采药 背景 Background NOIP2005复赛普及组第三题   描述 Description 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师 ...

  2. 【noip 2005】 采药

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

  3. tyvj1005 采药

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

  4. 问题 A: 【动态规划】采药_二维数组_一维数组

    问题 A: [动态规划]采药 时间限制: 1 Sec  内存限制: 64 MB提交: 35  解决: 15[提交][状态][讨论版] 题目描述 山洞里有一些不同的草药,采每一株都需要一些时间,每一株也 ...

  5. NOIP200503采药

                          NOIP200503采药 [问题描述] 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质, ...

  6. OpenJudge 2773 2726 2727 采药

    1.链接地址: http://bailian.openjudge.cn/practice/2773/ http://bailian.openjudge.cn/practice/2726/ http:/ ...

  7. [NOIP2005]采药

    2005年NOIP全国联赛普及组 [题目描述 Description] 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个 ...

  8. NOIP2005-普及组复赛-第三题-采药

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

  9. 疯狂的采药 洛谷p1616

    题目背景 此题为NOIP2005普及组第三题的疯狂版. 题目描述 LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他 ...

随机推荐

  1. 一款非常炫酷的jQuery动态随机背景滚动特效

    一款非常炫酷的jQuery动态随机背景滚动特效 图片背景会不停息的滚动,带有那种漂浮的视觉效果,小圈圈飘动. 更好的是还兼容IE6浏览器,大伙可以好好研究研究. 适用浏览器:IE6.IE7.IE8.3 ...

  2. Linux下iptables拦截Nginx的问题

    环境:CentOS 6.4 X64,Nginx 1.5.3 问题:配置好Nginx后,加入了“iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT” ...

  3. mysql命令语句来去除掉字段中空格字符的方法

    mysql有什么办法批量去掉某个字段字符中的空格?不仅是字符串前后的空格,还包含字符串中间的空格,答案是 replace,使用mysql自带的 replace 函数,另外还有个 trim 函数.   ...

  4. Global::pickSpecificClass_DNT

    /*************************************************** Created Date: 13 Jul 2013 Created By: Jimmy Xie ...

  5. opencv初体验

    http://guoming.me/opencv-config  这篇文章有讲解opencv的安装与配置 一些常用库 opencv_core249d.lib opencv_imgproc249d.li ...

  6. ORA-00845

    系统版本: [root@yoon ~]# more /etc/oracle-releaseOracle Linux Server release 5.7 数据库版本: Oracle Database ...

  7. WebDev.WebServer40.exe已停止工作

    今天写程序的遇到这个错误 错误的原因是代码中有死循环

  8. quartus ii 中文注释乱码解决办法

    转载自:http://bbs.ednchina.com/BLOG_ARTICLE_3027549.HTM 有些时候我们用Quartus ii 打开不同版本创建的工程文件时,往往会出现下列提示 点yes ...

  9. Aspose 数字和日期 设置

    Microsoft Excel一个非常强大的功能就是使客户可以设置数字和日期的显示格式,众所周知数字可以显示为不同的值格式,包含:小数.货币.百分数.分数.账面价值等,同样地Aspose.Cells也 ...

  10. MVC下用C#实现Excel导出

    Aspx页面脚本: function exportxls() { window.open("/Common/HomeExport?startdate=" + $("#hi ...