CSP 202203-2 出行计划 python 差分算法

简介: CSP 202203-2 出行计划 python 差分算法

CSP 202203-2 出行计划 python 差分算法


题目描述



121af44aa73d4e949e39df79ee4d82f1.png

82d1ea0c09db45ec991439c23ca861d9.png

思路


这道题实际上是利用差分进行计算,也就是进行区间修改

我们可以大概找一下思路,首先我们的数据来说,我们能够正常进行计划的做核酸的时间是

image.png


我们可以看到,只要满足这个条件,我们就可以完成我们计划,所以我们需要对这个区间的值都进行+1的操作,对于差分数组来说,我们就只需要对两端进行操作,也就是t [ l ] + = 1 ,


我们还可以对这个公式进行一个转化

image.png


所以我们只需要得到我们的q在这个 [t-l-c+1,t-k]上的值,就是我们的计划的数。


之后对差分数组求和,就可以得到计划的数,计算这里面的值,最后的diff[q]就是我们的结果。


代码

# http://118.190.20.162/view.page?gpid=T142
n,m,k = map(int,input().split())
N = 200010
diff = [0]*N 
for i in range(n):
    t,c = map(int,input().split())
    # 在【l, r】时间段内做核酸,则t时刻可进入
    l = max(t-k-c+1,0)
    r = max(t-k,0)
    # 在【l, r】时间段内能出行的计划个数加一
    diff[l] += 1
    diff[r+1] -= 1
# 利用差分计算每个时间的能出行个数
for i in range(1,N):
    diff[i] += diff[i-1]
for j in range(m):
    q = int(input())
    res = diff[q]
    print(res)


相关文章
|
4天前
|
算法 搜索推荐 C语言
Python实现数据结构与算法
【5月更文挑战第13天】学习数据结构与算法能提升编程能力,解决复杂问题,助你面试成功。从选择资源(如《算法导论》、Coursera课程、LeetCode)到实践编码,逐步学习基本概念,通过Python实现栈、队列和快速排序。不断练习、理解原理,探索高级数据结构与算法,参与开源项目和算法竞赛,持续反思与实践,以提升技术能力。
6 0
|
4天前
|
机器学习/深度学习 算法 数据可视化
Python 数据结构和算法实用指南(四)(4)
Python 数据结构和算法实用指南(四)
10 1
|
4天前
|
机器学习/深度学习 存储 算法
Python 数据结构和算法实用指南(四)(3)
Python 数据结构和算法实用指南(四)
14 1
|
4天前
|
存储 算法 搜索推荐
Python 数据结构和算法实用指南(四)(2)
Python 数据结构和算法实用指南(四)
10 0
|
4天前
|
存储 算法 Serverless
Python 数据结构和算法实用指南(四)(1)
Python 数据结构和算法实用指南(四)
14 0
|
4天前
|
存储 算法 搜索推荐
Python 数据结构和算法实用指南(三)(4)
Python 数据结构和算法实用指南(三)
10 1
|
4天前
|
存储 搜索推荐 算法
Python 数据结构和算法实用指南(三)(3)
Python 数据结构和算法实用指南(三)
10 1
|
人工智能 Go API
CSP 202104-4 校门外的树 python 动态规划DP + 约数优化
CSP 202104-4 校门外的树 python 动态规划DP + 约数优化
CSP 202104-4 校门外的树 python 动态规划DP + 约数优化
|
算法 Go Python
CSP 201703-4 地铁修建 python 最小生成树,并查集
CSP 201703-4 地铁修建 python 最小生成树,并查集
CSP 201703-4 地铁修建 python 最小生成树,并查集
|
Go Python
CSP 202006-2 稀疏矩阵 python 模拟
CSP 202006-2 稀疏矩阵 python 模拟
CSP 202006-2 稀疏矩阵 python 模拟