zxd2499104838 @ 2024-01-01 22:02:11
a = [0] * 5000010
b = [0] * 5000010
def insert(x, y, z):
b[x] += z
b[y + 1] -= z
def main():
n, p = map(int, input().split(' '))
a[1: n+1] = list(map(int, input().split(' ')))
# 构造差分数组b
for i in range(1, n + 1):
insert(i, i, a[i])
while p:
p -= 1
x, y, z = map(int, input().split(' '))
insert(x, y, z)
# 对差分数组b求前缀和,得到经过p次操作后的数组a
for i in range(1, n + 1):
a[i] = a[i - 1] + b[i]
print(min(a[1: n + 1]))
main()
by Terrible @ 2024-01-01 22:08:11
@zxd2499104838 如果你要写 Python 过这道题的话,我建议你放弃。
by zxd2499104838 @ 2024-01-02 18:04:50
@Terrible
好吧,谢谢大佬。想请问佬有推荐Py刷题的网站吗?
by Terrible @ 2024-01-02 19:00:59
@zxd2499104838
要在洛谷写 Python 的话,输入数据个数超过
你可以去 atcoder 和 codeforces 上写 Python,虽然需要阅读英文或者装插件翻译,但也明显好过洛谷。
当然 leetcode 和 牛客竞赛 也是不错的选择,起码也比洛谷好。
by zxd2499104838 @ 2024-01-02 20:41:52
@Terrible 收到!对我帮助很大,太感谢大佬了!!!!!!
by NC20061226 @ 2024-01-20 13:38:06
@zxd2499104838 遇到的问题一样