• 戴德兰


    2387 戴德兰

     

    牛牛非常喜欢赶deadline。
    输入n, c, d
    一共有n个任务,第i个任务需要a[i]分钟完成

    特别的,在最后d分钟,牛牛的效率会变成双倍(耗时变为一半)

    可能出现一个任务前半部分不在最后d分钟,后半部分在最后d分钟

    那么只有在最后d分钟的后半部分效率会变为双倍。
    牛牛希望在c分钟内完成的任务尽可能多,问最多可以完成多少个任务。
    耗时变为一半,是不取整的,如果出现0.5,那么就是0.5。

    对于100%的数据,1 <= n <= 10000, 1 <= d <= c <= 100000, 1 <= a[i] <= c。
    对于40%的数据,1 <= n <= 20。
    对于70%的数据,1 <= n <= 1000, 1 <= c <= 1000。

     

    输入

    输入第一行三个整数n, c, d。
    接下来一行n个整数a[i]。

    输出

    输出一行一个整数,表示答案。

    输入样例

    4 10 5
    8 10 1 2

    输出样例

    3
    思路:最后d分分钟双倍相当于c加了d;
    贪心从小到大完成任务
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int a[10005];
    int main(){
    int n,c,d;
    cin>>n>>c>>d;
    c=c+d;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    sort(a+1,a+1+n);
    int sum=0;
    for(int i=1;i<=n;i++){
        if(c>a[i]){
            sum++;
            c-=a[i];
        }
        else
        break;
    }
    cout<<sum<<endl;
        return 0;
    } 
    
    
    


  • 相关阅读:
    5个有趣且不必要的 JavaScipt 技巧
    动态规划的原理?
    如何避免出现failfast?
    动态规划的原理?
    jsp文件导包
    程序突击
    monthly report
    weekly review: 细节决定一切
    weekly review
    祸从口入祸从口出
  • 原文地址:https://www.cnblogs.com/yfr2zaz/p/10741754.html
Copyright © 2020-2023  润新知