美文网首页
[蓝桥杯2019初赛]外卖店优先级

[蓝桥杯2019初赛]外卖店优先级

作者: Vincy_ivy | 来源:发表于2020-02-11 10:16 被阅读0次

    题目描述

    题目连接
    “饱了么”外卖系统中维护着N 家外卖店,编号1~N。
    每家外卖店都有一个优先级,初始时(0 时刻) 优先级都为0。
    每经过1 个时间单位,如果外卖店没有订单,则优先级会减少1,最低减到0;
    而如果外卖店有订单,则优先级不减反加,每有一单优先级加2。
    如果某家外卖店某时刻优先级大于5,则会被系统加入优先缓存中;
    如果优先级小于等于3,则会被清除出优先缓存。
    给定T 时刻以内的M 条订单信息,请你计算T 时刻时有多少外卖店在优先缓存中。

    输入

    第一行包含3 个整数N、M 和T。
    以下M 行每行包含两个整数ts 和id,表示ts 时刻编号id 的外卖店收到一个订单
    1<=N, M, T<=100000,1<=ts<=T,1<=id<=N。

    输出

    输出一个整数代表答案。

    样例输入

    2 6 6
    1 1
    5 2
    3 1
    6 2
    2 1
    6 2

    样例输出

    1

    代码+详细解析

    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    //顺带复习一下结构体的排序hhh
    int m,n,t;
    //store[id]第id号店上一次有的订单
    //flag[id]存储第id号店在不在优先缓存中
    //value[id]存储第id号店的得分
    
    int store[100010],flag[100010],value[100010];
    
    struct node{
        int time,id;
    }a[100010];
    
    bool cmp(node a , node b){
        if(a.id==b.id)
            return a.time<b.time;
        return a.id<b.id;
    }
    
    int main(){
        cin>>n>>m>>t;
        for(int i=0;i<m;i++){
            cin>>a[i].time>>a[i].id;
        }
        sort(a,a+m,cmp);
        for(int i=0;i<m;i++){
            int tt=a[i].time,id=a[i].id;
            //如果当前的订单不等于上一次的订单,则减去它们之间的间隔
            //因为如果没有订单,则每个时刻减1
            if(tt!=store[id])
                value[id]-=tt-store[id]-1;
            //value的值要大于等于0
            value[id]=max(0,value[id]);
            if(value[id]<=3)
                flag[id]=0;
            value[id]+=2;
            if(value[id]>5)
                flag[id]=1;
            store[id]=tt;
        }
        for(int i=1;i<=n;i++){
        //如果这个店的最后一个订单不是第 t 分钟的
        //就减去最后一个订单的时间到 t 时间之间应该减去的
            if(store[i]<t){
                value[i]-=t-store[i];
                if(value[i]<=3)
                    flag[i]=0;
            }
        }
        int ans=0;
        for(int i=0;i<=n;i++)
            if(flag[i])
                ans++;
        cout<<ans;
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:[蓝桥杯2019初赛]外卖店优先级

          本文链接:https://www.haomeiwen.com/subject/xybtfhtx.html