1. 题目

传送门= ̄ω ̄=

有n个数和5种操作

add a b c:把区间[a,b]内的所有数都增加c

set a b c:把区间[a,b]内的所有数都设为c

sum a b:查询区间[a,b]的区间和

max a b:查询区间[a,b]的最大值

min a b:查询区间[a,b]的最小值

2. 题解

好好打线段树就行了
如果来了个set,add就没了,add的标记直接清空为0
如果来了个add,如果set没有标记,就add的标记增加,否则set的标记增加

注意数据中有个点是全set为0,所以要专门写个标记,标记set是否被标记了,不能直接判断set标记是否为0

代码: