摘要: 问题描述有n个格子,从左到右放成一排,编号为1-n。共有m次操作,有3种操作类型:1.修改一个格子的权值,2.求连续一段格子权值和,3.求连续一段格子的最大值。对于每个2、3操作输出你所求出的结果。输入格式第一行2个整数n,m。接下来一行n个整数表示n个格子的初始权值。接下来m行,每行3个整数p,x,y,p表示操作类型,p=1时表示修改格子x的权值为y,p=2时表示求区间[x,y]内格子权值和,p... 阅读全文
posted @ 2019-05-15 17:33 阳离子 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 简介注意事项开数组要开4倍大小,可以不用判断结束的边界条件。代码#include #include #include #define maxn 100000#define inf -1000000using namespace std;//maxv数组记录每一个区间内的最大值//sum数组记录区间和//add数组记录这个区间需要被加的数(lazy) int a[maxn], sum[maxn > ... 阅读全文
posted @ 2019-05-15 16:34 阳离子 阅读(130) 评论(0) 推荐(0) 编辑