一个简单的整数问题2(分块做法)
一个简单的整数问题2题意分块时间复杂度代码
题意
维护一个序列,支持两种操作
给一个区间的所有数加ddd
查询一个区间所有数的和
分块
将一个序列分成n\sqrt nn块,每块有n\sqrt nn个元素。用两个数组add、sum分别存储每一块需要加的数以及区间和(加之后)。
所有数加ddd操作,对于整块,sumi+=len∗d,addi+=dsum_i += len * d, add_i += dsumi+=len∗d,addi+=d。对于块内的区间,遍历每个数,wi+=d,sumget(i)+
原创
2020-09-25 16:57:23 ·
136 阅读 ·
0 评论