沈小聪


私信TA

用户名:dotcpp0729799

访问量:214

签 名:

等  级
排  名 3669
经  验 1872
参赛次数 11
文章发表 3
年  龄 0
在职情况 学生
学  校 重庆邮电大学
专  业

  自我简介:

TA的其他文章

python yydsyyds
浏览:77

解题思路:

注意事项:

参考代码:

first = input()

n,m,T=[int (i) for i in first.split()]

a=[]

 

for i in range(m):

    a.append([int(i) for i in input().split()])

 

#对订单的的时间进行排序,目的是算出当前订单与上一回订单之间的间隔

#从未计算出这家店没有订单的时候优先级下降数

#即:prior[idd] -= tt-order[idd]-1

a=sorted(a,key=lambda a:a[0])

 

order=[]#订单的时刻

prior=[]#优先级的分数

flag=[]#是否在优先缓存中

#初始化为0

order=[0 for i in range(n+1)]

prior=[0 for i in range(n+1)]

flag=[0 for i in range(n+1)]

 

#遍历每一条订单信息

for i in range(m):

    tt=a[i][0]

    idd=a[i][1]

    #如果当前订单的时间不等于上次的订单

    #由题意每过一秒优先级减1,所以优先级减去间隔

    if tt != order[idd]:

        prior[idd] -= tt-order[idd]-1

    if prior[idd]<0: prior[idd]=0#优先级最低为0

    if prior[idd]<=3: flag[idd]=0

    prior[idd]+=2  #有订单则优先级加2

    if prior[idd]>5: flag[idd]=1

    order[idd]=tt  #记录这次订单的时间,下此迭代使用

 

#处理到了T时刻的情况

for i in range(1,n+1):

    #如果最后一个订单不是T时刻的

    #要减去最后一趟订单时间与t的差的绝对值

    if order[i] <T:

        prior[i]-=T-order[i]

        if prior[i]<=3: flag[i]=0

 

#遍历求在缓存区的商家个数

ans=0

for i in range(n+1):

    if( flag[i]>0):

        ans+=1

print(ans)


 

0.0分

0 人评分

  评论区

  • «
  • »