如何更快地计算总和

时间:2017-12-01 16:14:02

标签: python optimization sum

内存限制:256 MB

时间限制:1秒

您好。

我们有以下代码:

N, M = list(map(int, input().split()))
stones = list(map(int, input().split()))

for __ in range(M):
    command, index, num = input().split()
    index, num = int(index), int(num)

    if command == "S":
        print(sum(stones[index:num + 1]))
    elif command == "M":
        stones[index] = num

其中:

  1. N是列表stones
  2. 的长度
  3. M是commands
  4. 的编号
  5. 1≤N,M≤10** 5
  6. 两种类型的{type} {index} {index2 or value}形式的命令:
    • ' S'打印范围[index; index2]
    • 中的项目总和
    • ' M'将index上的项目值更改为新0≤value≤10
  7. 此代码超出了时间限制。那么,如何优化呢?

    示例输入:

    9 10
    1 1 2 3 5 0 4 9 4
    S 2 4
    S 8 8
    S 0 8
    S 4 5
    M 5 9
    S 0 8
    S 4 5
    M 0 7
    S 1 8
    S 0 5
    

    样本输出:

    10
    4
    29
    5
    38
    14
    37
    27
    

0 个答案:

没有答案