题目大意: 给定一个区间及其各个元素的初值,要求支持如下操作: 1.区间加 2.区间赋值 3.查询区间最大值 4.查询区间历史最大值 分析: 容易想到线段树,但是细思恶极(仔细想想恶心到了极点)的是,最后查询区间历史最大值的操作. 如果只记录区间历史最大值显然不能下放,如果单纯更新区间加,区间赋值最大值,可能会出现历史最大值更新不及时的情况.如先赋值很大值,未来得及下放,又赋值很小,导致子区间历史最大值不能更新.又如如果区间加只取最大值,可能会只取最大值,导致实际上忽视了一些使区间加变小的操作.…