Krydom: 暁の水平线に胜利を刻むのです

ソロモンの悪夢、見せてあげる!

@krydom1年前

03/8
19:21
cdq分治 其他算法

[bzoj 1176] Balkan2007 Mokia

00:00/00:00

♦♦♦♦♦♦   Description   ♦♦♦♦♦♦

 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000.

♦♦♦♦♦♦   Input   ♦♦♦♦♦♦

第一行两个整数,S,W;其中S为矩阵初始值;W为矩阵大小

接下来每行为一下三种输入之一(不包含引号):

"1 x y a"

"2 x1 y1 x2 y2"

"3"

输入1:你需要把(x,y)(第x行第y列)的格子权值增加a

输入2:你需要求出以左上角为(x1,y1),右下角为(x2,y2)的矩阵内所有格子的权值和,并输出

输入3:表示输入结束

♦♦♦♦♦♦   Output   ♦♦♦♦♦♦

对于每个输入2,输出一行,即输入2的答案

♦♦♦♦♦♦   Sample Input   ♦♦♦♦♦♦

0 4
1 2 3 3
2 1 1 3 3
1 2 2 2
2 2 2 3 4
3

♦♦♦♦♦♦   Sample Output   ♦♦♦♦♦♦

3
5

♦♦♦♦♦♦   Hint   ♦♦♦♦♦♦

♦♦♦♦♦♦   题解  ♦♦♦♦♦♦

cdq分治.....

这种东西还是找点论文或者找找网上成堆的题解来读读的好.....

按照时间对操作分治

据说s是测试数组组号,直接扔掉就好了

c++:

pascal:

 

[bzoj 1176] Balkan2007 Mokia