停车位 蓝桥杯模拟

【问题描述】
小蓝要在路边划分停车位。
他将路边可停车的区域划分为 L 个整数小块,编号 1 L 。一个车位需要连续的 K 个小块,停车位不能重
叠。有的小块属于井盖、消防通道等区域,不能停车。
请问小蓝最多划分出多少个停车位?
【输入格式】
输入的第一行包含三个整数 L K N ,分别表示小块数量、一个车位需要的小块数量和不能停车的小块
数量,相邻整数之间用一个空格分隔。
第二行包含 N 个整数 a[1], a[2], … a[n] ,按从小到大的顺序排列,相邻的整数间用空格分隔,表示这
些位置不能停车。
【输出格式】
输出一行包含一个整数,表示答案。
【样例输入】
100 10 2
25 91
【样例输出】
8
思路:这道题相当于把一个区间分成(n+1)个小区间,之后在每个小区间里算出能停车的数量,相加得到总和
l,k,n = map(int,input().split())
a=list(map(int,input().split()))
res = 0
res +=(a[0]-1)//k#第一段区间的停车数
for i in range(1,n):#中间区间的停车数,(1,n)是第二个区间到倒数第二个区间
  res +=(a[i]-1-a[i-1])//k#a[i]-1-a[i-1]是两个相邻区间的小块数
res =+(l-a[-1)//k#最后一段区间的停车数
print(res)

你可能感兴趣的:(#,思维题/数学题,蓝桥杯,python)