数列分块整理..
先分块,把n个数分成根号n个块,每个块根号n个数,(如果不是完全平方数区间个数就+1)num数组记录每个数lef数组维护当前这个数所在区间的左边界rig数组维护当前这个数所在区间的右边界blo数组维护当前这个数属于哪一个块lazy数组维护每个块增加的数思路:修改1.对于每次修改,找到L所在的块和R所在的块2.如果L和R在相邻块或者同一块,直接枚举区间num[i]+C;3.否则,枚举第L和R中间的块,lazy[i]+C,并且枚举L所在的块和R所在的块的num[i]+C;查询第i个数的.
原创
2021-07-22 09:57:51 ·
163 阅读 ·
0 评论