题意
做法
先考虑这样一个问题
(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}))级别的