ccfcsp 202203-2 出行计划 python 差分

题目

代码-70

n,m,k=map(int,input().split())
#出行计划数目、查询个数以及等待核酸检测结果所需时间
go=[]
ok=[]
for i in range(n):
    a,b=map(int,input().split())
    go.append(a)
    ok.append(b)
haha=[]
result=[]
for i in range(m):
    haha.append(int(input()))
    sum=0
    time=haha[i]+k
    for j in range(n-1,-1,-1):
        if go[j]>=time and go[j]<=time+ok[j]-1:
            sum+=1
        if go[j]<time:
            break
    result.append(sum)
for i in result:
    print(i)

代码-100

n,m,k=map(int,input().split())
#出行计划数目、查询个数以及等待核酸检测结果所需时间
A=[0]*2000010
for i in range(n):
    a,b=map(int,input().split())
    e=max(1,a-b+1)
    A[e]+=1#允许进入该场所的最早的核酸报告时间=允许进入该厂的时间-有效期-1
    A[a+1]-=1#允许进入该厂最晚的核酸报告时间=允许进入该厂的时间
    #差分标记 left~right -->  [left]~[right+1]
for i in range(1,2000010):
    A[i]+=A[i-1]

haha=[]
for i in range(m):
    haha.append(int(input()))
for i in haha:
    print(A[i+k])

差分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值