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

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

    【输入】

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

    【输出】

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

    【样例输入】

    2 30

    3 50 5

    5 100 3

    【样例输出】

    40

    题解:

    和刷水题(二)差不多,代码在此↓↓↓

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

    这道题还可以把所有题目依次列出来,再用刷水题(一)的方法求解。但是,我就不告诉你代码,因为太(wo)简(mei)单(xie)了。你可以试一试。

  • 相关阅读:
    逆向
    BUUCTF
    学校健康系统自动打卡
    SQL数据库操作练习(3)
    简单尝试UPX脱壳
    网站WAF-安全狗的绕过(一)
    【题解】担心
    【题解】树上的鼠
    【题解】CF1299B Aerodynamic
    【题解】等你哈苏德
  • 原文地址:https://www.cnblogs.com/jiaweigao/p/9515055.html
Copyright © 2011-2022 走看看