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

    这是我刷水题的第四天。有n道水题可刷,做出第i道水题需要a[i]分钟。我最多能刷t分钟水题。我想让空闲时间越少越好,请问空闲时间最少几分钟?

    【输入】

    第一行两个整数n和t,第二行n个整数,第i个整数a[i]表示做第i道水题所需要的时间。

    【输出】

    一个整数,表示最少的空闲时间。

    【样例输入】

    4 50

    12 23 34 45

    【样例输出】

    4

    【输出说明】

    50-12-34=4(分钟)

    题解:

    01背包改一改,直接上代码(为什么第13行要从后往前循环呢?你可以试一试)

     1 #include<iostream>  
     2 using namespace std;                                      代
     3 int n,t;                                                  码
     4 int a[1005];                                              保
     5 int dp[1005]={1};                                         护
     6 int main()                                                模
     7 {                                                         式
     8     cin>>n>>t;                                            已
     9     int i,j;                                              开
    10     for(i=1;i<=n;i++)                                     启
    11         cin>>a[i];                                        ,
    12     for(i=1;i<=n;i++)                                     请
    13         for(j=t;j>=1;j--)                                 勿
    14             if(j>=a[i]&&dp[j-a[i]]==1)                    复
    15                 dp[j]=1;                                  制
    16     for(i=t;i>=0;i--)                                     ,
    17         if(dp[i]==1)                                      欢
    18             break;                                        迎
    19     cout<<t-i;                                            参
    20     return 0;                                             考
    21 }
  • 相关阅读:
    django自学
    Oracle
    Linux查看日志常用命令
    Appium使用
    jmeter性能测试
    数据库连接
    redis相关
    ubuntu系统软件安装以及相关命令
    LINUX远程强制重启/proc/sys/kernel/sysrq /proc/sysrq-trigger
    sqlserver查询表大小
  • 原文地址:https://www.cnblogs.com/jiaweigao/p/9556704.html
Copyright © 2011-2022 走看看