bzoj5382

题意

pdf

做法

先考虑这样一个问题

(n imes m)的方格,可以增加一个位置的权值,查询一个位置左上角之和
有两种显然的做法:
(O(1))修改这个位置,(O(nm))查询扫左上角
(O(nm))修改给右下角加值,(O(1))查询当前位置的值
然后又一个稍微平衡一下的方法,就是修改时((x,y))固定(x)(y)往更大的移,然后给这些位置加上去。查询时固定(y)(x)往更小的位置移过去。当然坐标可以换一下,这样就可以做到(O(max(n,m)))

同理将(val_1)表示成(prodlimits_{i=1}^c p_i^{k_i}),然后平衡次幂就是(O(sqrt{prodlimits_{i=1}^c k_i}))级别的

原文地址:https://www.cnblogs.com/Grice/p/12957068.html