Python题解求助,4RE,1MLE

P2367 语文成绩

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 的话,输入数据个数超过 5\times 10^5 就放弃,另外可以搜索提交记录中的 python3 或 pypy3 的 AC 记录,如果没有 AC 记录或者通过记录特别少的话就放弃。

你可以去 atcoder 和 codeforces 上写 Python,虽然需要阅读英文或者装插件翻译,但也明显好过洛谷。

当然 leetcode 和 牛客竞赛 也是不错的选择,起码也比洛谷好。


by zxd2499104838 @ 2024-01-02 20:41:52

@Terrible 收到!对我帮助很大,太感谢大佬了!!!!!!


by NC20061226 @ 2024-01-20 13:38:06

@zxd2499104838 遇到的问题一样


|