BZOJ 4066: 简单题

正文索引 [隐藏]

Description

你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作:
 

命令 参数限制 内容
1 x y A 1<=x,y<=N,A是正整数 将格子x,y里的数字加上A
2 x1 y1 x2 y2 1<=x1<= x2<=N
1<=y1<= y2<=N
输出x1 y1 x2 y2这个矩形内的数字和
3 终止程序

Input

输入文件第一行一个正整数N。
接下来每行一个操作。每条命令除第一个数字之外,
均要异或上一次输出的答案last_ans,初始时last_ans=0。

Output

对于每个2操作,输出一个对应的答案。

Sample Input

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

Sample Output

3
5

HINT

数据规模和约定
1<=N<=500000,操作数不超过200000个,内存限制20M,保证答案在int范围内并且解码之后数据仍合法。
样例解释见OJ2683

题解

感动的不行、、终于过了这题、在我不会KDTree的时候,我用树套树!分块!把各种瞎搞的方法丢一起都过不了OwQ!
感谢@PanYuchong 神犇告诉我这题的正确姿势!
(其实我似乎还是不会写KDTree、、上网看了算法原理之后模仿着线段树瞎扮出来的代码、、跑了46S差点T了、、