zoukankan      html  css  js  c++  java
  • 刷水题(二)

    今天,我又去刷水题了。水题好多呀!这些题分为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 }
  • 相关阅读:
    UWA 技术分享连载 转载
    移动游戏加载性能和内存管理全解析 学习
    英语书籍阅读
    2017年6月
    Unity 官方文档学习
    YAML Class ID Reference
    Unity Blog 学习
    希腊字母
    2017年5月
    转载:书籍
  • 原文地址:https://www.cnblogs.com/jiaweigao/p/9507793.html
Copyright © 2011-2022 走看看