- 题目名称:路灯亮度
时间限制:1000ms 内存限制:256M
- 题目描述
有一条长度为n米的街道,上面分布着一些亮度不等的路灯。每离开某盏路灯1米,该位置受该盏路灯影响的亮度就比该盏路灯的原始亮度减少1个单位,而某个特定位置的最终亮度则等于所有影响该位置的路灯亮度的最大值,而亮度的最小值为0。
- 输入描述:
第一行输入两个正整数n和m分别表示街道长度和路灯数量,从第二行开始的m行每行两个正整数p和l分别表示路灯的位置和光亮程度(1<=p<=n)。再随后的q行每行都有一个正整数i,表示一个位置。
- 输出描述:
输出q行表示所有的i对应的位置的亮度值
- 示例
输入 | 输出 |
---|---|
10 2 1 5 4 3 1 3 10 | 5 3 10 |
思路:将路灯对每个位置的影响存储在数组中,最后根据索引输出亮度值
限制:平台提醒内存不足或运行时间过长
n, m = map(int, input().split())
brightness = [0] * n # 初始化亮度数组
light_pos_brightness = []
# 路灯位置及亮度
for _ in range(m):
pos, b = map(int, input().split())
light_pos_brightness.append((pos, b))
# 更新路灯对路面的影响
for j, k in light_pos_brightness:
for l in range(n):
brightness[l] = max(max(k - abs(j - 1 - l), brightness[l]), 0)
brightness[j - 1] = k
# 读取索引
index = []
while True:
try:
position = input().strip()
if position:
index.append(int(position))
else:
break
except EOFError:
break
# 根据索引,输出亮度
for i in index:
print(brightness[i - 1])
- jupyter
10 2
1 5
4 3
1
3
10
5
3
0
- 试题平台
运行中...
运行失败:不通过
您的代码已保存。
运行超时,您的程序未能在规定的时间内运行结束,请检查是否循环有错或算法复杂度过大。
总结:在jupyter里运行没问题,但是在试题平台报错,如果您有更好的idea,欢迎在评论区留言,感谢观看!