Python|外卖店优先级

简介: Python|外卖店优先级

问题描述

外卖系统中维护着N家外卖店,编号1~N。每家外卖店都有一个优先级,初始时(0时刻)优先级都为0

每经过1个时间单位,如果外卖唐没有订单,则优先级会减少1,最低减到0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加2

如果某家外卖店某时刻优先级大于5,则会被系统加入优先缓存中;如果优先级小于等于3,则会被清除出优先缓存。

给定T时刻以内的M条订单信息,请你计算T时刻时有多少外卖店在优先缓存中。

【输入格式】

第一行包含3个整数NMT

以下M行每行包含两个整数tid,表示ts时刻编号id的外卖唐收到一个订单

【输出格式】

输出一个整数代表答案。

【样例输入】

2 6 6

1 1

5 2

3 1

6 2

2 1

6 2

【样例输出】

1

【样例解释】

6时刻时,1号店优先级降到3,被移除出优先缓存;2号唐优先级升到6加入优先缓存。所以是有1家店(2)在优先缓存中。

解决方案

这道题是根据输入的数据依次判断时间点是否有订单来进行优先级的加减。那么直接根据输入的数据建立一个初始值为0的列表,再按照输入数据随着时间进行判断。

这里可以创立一个新的列表,利用字典对输入的值进行填充,再遍历新创立的列表,有就+2,没有就-1

最后便是对加入或者删除优先级缓存的判断。对缓存的判断要以3为标准。这样才可以对已加入缓存的店铺进行加减。最后遍历删除<=3就行。

代码示例:

N, M, T = map(int, input().split())

lis = [0 for i in range(N)]   #创建一个基础优先级为0的列表

lis_a, lis_b = [], []

dic = {}

for i in range(M):

    a, b = map(int, input().split())

    lis_a.append(a)

    lis_b.append(b)

for i in range(1, T+1):     #按时间点进行判断

    lis1 = []               #每次遍历的时间点若有订单就加入

    for j in range(M):

        if lis_a[j] == i:

            lis1.append(lis_b[j])

    for k in lis1:         #在列表中,即有订单,+2

        lis[k-1] += 2

    for p in range(1, N+1):  #不在列表,-1

        if p not in lis1 and lis[p-1] > 0:   #最低到0

            lis[p-1] -= 1

    for q in range(N):

        if lis[q] >= 3:   #当优先级>3便加入或者更改

            dic[q+1] = lis[q]

for k in list(dic):   #优先级<=3,便删除

    if int(dic[k]) <= 3:

        dic.pop(k)

print(len(dic))


目录
相关文章
|
1小时前
|
Python
Python系列(7)—— 运算符的优先级
Python系列(7)—— 运算符的优先级
|
Python
python学习2-运算符以及运算符的优先级
python学习2-运算符以及运算符的优先级
|
1小时前
|
Python
Python入门02 算术运算符及优先级
Python入门02 算术运算符及优先级
|
9月前
|
Python
【从零学习python 】08.Python了解位运算符, 运算符优先级
【从零学习python 】08.Python了解位运算符, 运算符优先级
48 0
|
11月前
|
机器学习/深度学习 存储 缓存
蓝桥杯-外卖店优先级-python解法
蓝桥杯-外卖店优先级-python解法
59 0
|
11月前
|
Python
Python 运算符及其优先级总结大全(新手必收藏)
Python 运算符及其优先级总结大全(新手必收藏)
629 0
|
12月前
|
调度 Python
一日一技:Python自带的优先级调度器
一日一技:Python自带的优先级调度器
65 0
|
12月前
|
调度 Python
一日一技:Python自带的优先级调度器
一日一技:Python自带的优先级调度器
84 0
|
12月前
|
Python
python中从此明白运算符优先级
python中从此明白运算符优先级
|
SQL 前端开发 JavaScript
基于python Django 实现外卖点菜管理系统 计算机毕设
基于python Django 实现外卖点菜管理系统 计算机毕设
324 0
基于python Django 实现外卖点菜管理系统 计算机毕设