糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 采草药算法

采草药算法

时间:2018-07-04 07:50:51

相关推荐

采草药算法

题目描述

小K是个苦命的孩子,他的师傅为了多赚钱,以减肥为理由,让他去采药,并说不完成不能吃饭。野地里有许多不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。要求在规定的时间t里,采到的草药的总价值最大。

输入要求

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

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

输出要求

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

输入样例

70 3

71 100

69 1

1 2

输出样例

3

来源

NBU OJ

思路:

和动态规划下的01背包问题一样

struct zy{int time;int val;}z[100];int dp[100][1000];int max(int a,int b){return (a > b) ? a : b;}int main(){int T,M;cin>>T>>M;int i = 0;for(i = 1;i<= M;i++){cin>>z[i].time>>z[i].val;}for(i=0;i<M;i++)dp[i][0]=0;for(i=0;i<T;i++)dp[0][i]=0;for(i=1;i<=M;i++){for(int j=1;j<=T;j++){if(j>=z[i].time)dp[i][j] = max(dp[i-1][j],dp[i-1][j-z[i].time]+z[i].val);elsedp[i][j] = dp[i-1][j];}}cout<<dp[M][T]<<endl;return 0;}

如果觉得《采草药算法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
采草药原文和翻译

采草药原文和翻译

2022-01-29

采草药

采草药

2020-12-10

采草药历险记

采草药历险记

2020-12-19

采草药(01背包)

采草药(01背包)

2020-01-13