bzoj5382

题意

pdf

做法

先考虑这样一个问题

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

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

posted @ 2020-05-25 15:10  Grice  阅读(105)  评论(0编辑  收藏  举报