zoukankan      html  css  js  c++  java
  • 贪心,布置作业

    内部赛 题目好像没有公开
     
    很快就到考试周了!但是可怜的Big  Q  God平时过于认真训练,结果欠下了一大堆的作业,平时分岌岌可危!
     
    现在BQGt=0时刻开始做作业,一共有n项作业,第i项作业会在a_i时刻布置下来(即当t geq a_iBQG可以做这一项作业),需要b_i的时间完成(假设当t=x时刻BQG选择做这一项作业,那么当t in [x,x+b_i)BQG不能选择做其他作业)。
     
    BQG决定尽快解决掉所有作业,因此在完成所有作业之前他不会去做其他事情,他想知道最早在什么时刻能完成所有作业。
     

    Input

    第一行是一个正整数T(T leq 100),表示测试数据的组数,
     
    对于每组测试数据,
     
    第一行是一个正整数n(n leq 1000),表示作业的数量,
     
    接下来n行,
     
    每行包含两个整数a(0 leq a leq 1000000000),b(0 < b leq 1000000),表示作业布置的时刻和完成作业所需时间。
     

    Output

    对于每组测试数据,输出一个整数,表示最早完成所有作业的时刻。

    #include <stdio.h>
    #include <algorithm>
    
    using namespace std;
    
    
    struct action{
        int s;///布置的时间
        int f;///需要的时间
    }a[1005];
    
    bool cmp(const action &a,const action &b)
    {
        if(a.s<=b.s)
            return true;
        else return false;
    }
    
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            int time=0;///当前时间
            int n;
            scanf("%d",&n);
            for(int i=0;i<n;i++)
                scanf("%d%d",&a[i].s,&a[i].f);
            sort(a,a+n,cmp);
            for(int i=0;i<n;i++)
            {
                if(time<=a[i].s)
                {
                    time=a[i].s+a[i].f;
                }
                else time=time+a[i].f;
            }
            printf("%d
    ",time);
        }
        return 0;
    }
  • 相关阅读:
    购买 Linux VPS 服务器后简单的安全设置
    VPS性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试
    Polysh实现多服务器批量执行shell
    第十一周编程总结
    第十周作业
    第九周编程总结修改
    第九周编程总结
    第八周编程总结
    第7周编程总结
    第七周编程总结啊
  • 原文地址:https://www.cnblogs.com/TreeDream/p/5277663.html
Copyright © 2011-2022 走看看