Advertisement

线段树用于计算区间最大连续子段和

阅读量:

AcWing 245. 你能回答这些问题吗
假设存在一个长度为 N 的数组 A,并配有 M 条操作指令,每条指令具体形式如下:

  1. 1 x y,用于计算区间 [x,y] 内的最大连续子段和,其数学表达式为 max_{x≤l≤r≤y}{\sum_{i=l}^{r}{A[i]}}
  2. 2 x y,将数组中位置 x 的元素更新为 y。

针对每一个查询类型的操作,需返回一个整数作为结果。

输入格式

第一行给出两个整数 N 和 M。

第二行包含 N 个整数,记为 A[i]。

随后的 M 行中,每行有三个整数 k,x,y,其中当 k=1 时代表查询操作(若 x 大于 y,则需进行交换),而 k=2 则表示修改操作。

输出格式

针对每一个查询指令,需生成一个整数作为对应的答案结果。

每个答案应单独成行。

数据范围

N≤5×10^5,M≤10^5,−10^3≤A[i]≤10^3

输入样例解析

复制代码
    5 3
    1 2 -3 4 5
    1 2 3
    2 2 -1
    1 3 2
    
    
      
      
      
      
      
    

全部评论 (0)

还没有任何评论哟~