记一次考试

Yesterday,Licheng No.2 Senior High,Jinan,one thing happened.The student who studies OI had an unforgettable experience----they were forced to finish the test that made by _rqy

好了,说人话。做完,我们初三1.1队的一众大佬们(当然除了我),顶着推荐生考试的压力,做了一套由_rqy命题的著名题组----桶哥的问题

当然,我还是玄学爆零(这就非常尴尬)

不过,GC大佬还是最强的——rank1

T1就不说了,唯一一点就是不要将本来并不是很难的题刻意复杂化,对于买桶这个题,我只想提示大家——不要用高精!!!

好了,接下来是T2——送桶的问题

•题目描述:桶哥卖完了桶,接下来就是送桶(虽然我并不知道Ta为什么不自己吃掉)。一共要送n个桶,第i个桶需要花费桶哥ai的时间,并且要求bi之前送达。但是桶哥比较懒,他想尽量晚的出发。下面给出n、ai和bi,求桶哥出发的最大时间。

•题目分析:对于这道题,我们不能正常的从前往后找了,需要将n个桶按照最晚送达时间从大到小排序,最后用最大顺序减去时所需时间再取一个最大值就可以了;

•AC代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iomanip>
#include<string>
#include<algorithm>
#include<cstdlib>
using namespace std;
const int maxn=1000001;
int sum,minn=0x3f3f3f3f;
inline int read() 
{
    int X=0,w=1; 
    char c=getchar();
    while (c<'0'||c>'9') { if (c=='-') w=-1; c=getchar(); }
    while (c>='0'&&c<='9') X=(X<<3)+(X<<1)+c-'0',c=getchar();
    return X*w;
}
struct m
{
    int x,y;
}s[maxn];
int cmp(m a,m b)
{
    return a.y<b.y;
}
int main()
{
    int k;
    k=read();
    for(int i=1;i<=k;i++)
    {
        s[i].x=read();
        s[i].y=read();
    }
    sort(s+1,s+1+k,cmp);
    for(int i=1;i<=k;i++)
    {
        sum+=s[i].x;
        if(s[i].y-sum<minn)
        {
            minn=s[i].y-sum;
        }
    }
    printf("%d",minn);
    return 0;
}

T3真心不会,还是先刷会儿简单题压压惊吧。

posted @ 2019-05-28 19:44  蒟蒻hqk  阅读(122)  评论(0编辑  收藏  举报