zoukankan      html  css  js  c++  java
  • E. MaratonIME does (not do) PAs

    time limit per test
    2.0 s
    memory limit per test
    256 MB
    input
    standard input
    output
    standard output

    Another semester has ended and Arthur finally achieved his dream of attending Data Structures I with all professors in the Mathematics Department. Now, he can finally pass this subject, but, like everyone expected, he didn't do any PAs (programming assignments), and all deadlines have passed.

    Fortunately, all PAs can still be submitted for grading, but with a penalty given by: (late submission time) - (expected deadline time) for each PA.

    Arthur, having taken Data Structures I so many times, knows exactly how much time he needs to complete each assignment. Now, he wants to write a program that determines the minimum sum of penalties that can be achieved, given he can do the PAs in any order.

    It's worth noting that Arthur can't do more than one assignment at a time, since that skill is only learned in Data Structures II. Therefore, if Arthur starts working on an assignment, he needs to finish it before starting any other.

    There is only one problem left: Arthur believes this problem to be unsettlingly similar to a PA, and, therefore, refuses to do it.

    Help Arthur complete this task and, finally, take Data Structures II.

    Input

    The first line of input contains two integers 1 ≤ n ≤ 105 and 1 ≤ s ≤ 109, the amount of PAs Arthur needs to do and the time when he started to do them, respectively.

    n lines follow, the i-th line contains two integers 1 ≤ ti ≤ 109 and 0 ≤ ei ≤ 109, the time Arthur takes to complete the i-th assignment and the expected deadline time for that assignment.

    It is guaranteed s > ei for all i.

    Output

    Print the sum of all penalties if Arthur completes the PAs in the optimal order.

    Example
    Input
    Copy
    2 1
    2 0
    1 0
    Output
    Copy
    6
    Note

    In the first example, if Arthur does the second PA first, he finishes it at time 2, and finishes the first one at time 4, making his total penalty equals to (2-0)+(4-0) = 6.

    题意:第一行输入两个数,代表 n 个任务和开始做任务的时间 s ,接下来的n 行每行输入完成任务需要的时间 t 和该任务的截至时间 d ,每个任务都有一个罚时(罚时=完成任务的时间-该任务的截止时间),

    求完成所有任务的最小总罚时。

    题解:贪心处理,将完成任务的时间从小到大排序,若完成时间相同,按截至时间从小到大排序

    #include<iostream>
    #include<algorithm>
    #include<math.h>
    #define ll long long
    using namespace std;
    struct node
    {
        ll t;
        ll d;
    }p[100005];
    bool cmp(node a,node b)
    {
        if(a.t!=b.t)
            return a.t<b.t;
        else
            return a.d<b.d;
    }
    int main()
    {
        ll n,s;
        cin>>n>>s;
        for(int i=0;i<n;i++)
        {
            cin>>p[i].t>>p[i].d;    
        }
        sort(p,p+n,cmp);
        ll cnt=0;
        for(int i=0;i<n;i++)
        {
            //cout<<p[i].t<<' '<<p[i].d<<endl;
            s=s+p[i].t;
            cnt=cnt+s-p[i].d;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
        }
        cout<<cnt<<endl;
        return 0;
    }
  • 相关阅读:
    (转)[Unity3D]计时器/Timer
    characterCustomezition的资源打包代码分析
    论文笔记:语音情感识别(四)语音特征之声谱图,log梅尔谱,MFCC,deltas
    论文笔记:语音情感识别(三)手工特征+CRNN
    论文笔记:语音情感识别(二)声谱图+CRNN
    论文笔记:2018 PRCV 顶会顶刊墙展
    论文笔记:Emotion Recognition From Speech With Recurrent Neural Networks
    CTC(Connectionist Temporal Classification)介绍
    论文笔记:语音情感识别(一)语音知识概览
    710 Random Pick with Blacklist
  • 原文地址:https://www.cnblogs.com/-citywall123/p/11190976.html
Copyright © 2011-2022 走看看