K - Transformation HDU - 4578 线段树经典题(好题)

题意:区间  加   变成定值 乘  区间查询:和 平方和 立方和   

思路:超级超级超级麻烦的一道题  设3个Lazy 标记分别为  change 改变mul乘 add加  优先度change>mul>add因为改变了之后 前面的mul 和add都失效了

push_down的时候    如果有change 标记 可以很方便得求p[1] p[2] p[3]

如果mul存在  则也可以很方便求得子区间的各种值 同时由于mul 比add优先  要把add标记*=value  相当于本来每个加5  乘以2后变成每个加10

如果此时add还存在  利用平法和 平方差也可以求的p 1 2 3 

找了半天错 好像是push_down 哪里写错了  找不下去了。。。 找了个博客的push_down替换了一下就过了  崩溃!

参考博客:https://www.cnblogs.com/whatbeg/p/4111701.html

猜你喜欢

转载自www.cnblogs.com/ttttttttrx/p/10340064.html