码迷,mamicode.com
首页 > 其他好文 > 详细

刷水题(二)

时间:2018-08-20 21:40:40      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:.com   color   --   stream   return   for   i++   namespace   space   

今天,我又去刷水题了。水题好多呀!这些题分为N个难度级别,做出第i个难度级别的任意一题都需要a[i]分钟,并获得b[i]点积分。我最多可以刷T分钟水题,问我最多能获得多少积分?

【输入】

第一行两个正整数N和T,接下来的N行每行两个正整数数a[i]和b[i]。

【输出】

一个数,表示我最多可以获得的积分。

【样例输入】

4 50

1 10

3 40

9 130

27 400

【样例输出】

720

题解:

直接上代码(没错,就是这么简单)

 1 #include<iostream>
 2 using namespace std;
 3 int dp[1005];
 4 int a,b;
 5 int n,t;
 6 int main()
 7 {
 8     cin>>n>>t;
 9     int i,j;
10     for(i=1;i<=n;i++)
11     {
12         cin>>a>>b;
13         for(j=a;j<=t;j++)
14             dp[j]=max(dp[j],dp[j-a]+b);
15     }
16     cout<<dp[t];
17     return 0;
18 }

我把这段代码稍微改一下,就变成了刷水题(一)的一个更好的解,不信试试

 1 #include<iostream>
 2 using namespace std;
 3 int dp[1005];
 4 int a,b;
 5 int n,t;
 6 int main()
 7 {
 8     cin>>n>>t;
 9     int i,j;
10     for(i=1;i<=n;i++)
11     {
12         cin>>a>>b;
13         for(j=t;j>=a;j--)//从后往前循环
14             dp[j]=max(dp[j],dp[j-a]+b);
15     }
16     cout<<dp[t];
17     return 0;
18 }

 

刷水题(二)

标签:.com   color   --   stream   return   for   i++   namespace   space   

原文地址:https://www.cnblogs.com/jiaweigao/p/9507793.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!