2015-08-09 18:57:08
【传送门】CDQ第一道启蒙题~
题意:最多16万个修改,1万个询问,维护的是一个W*W的矩阵(W<=2000000),每个修改是给一个格子加权值,每个询问是询问一个子矩阵内的权值和。
思路:考虑CDQ分治,首先将子矩阵查问拆分为4个查询,然后容斥搞一下,将所有询问按照 x 轴排序,然后将所有操作按照时间一分为二。
(1)先处理掉前半边区间的修改对后半边询问造成的影响,由于已经按照 x 轴排序了,所以用一颗树状数组就可以维护点权和。
(2)然后还原前半边区间的影响。
(3)将前半边操作放在左边,后半边操作放在右边,然后分治处理两边。
#include
#include
#include
#include
#include
#include
#include