u
u.cpp/in/out
题目描述
考虑一个 n×n 的矩阵 A,初始所有元素均为 0。
执行 q 次如下形式的操作:给定 4 个整数 r,c,l,s,对于每个满足 x∈[r,r+l),y∈[c,x−r+c] 的元素 (x,y),将权值增加 s。也就是,给一个左上顶点为 (r,c)、直角边长为 l 的下三角区域加上 s。
输出最终矩阵的元素异或和。
输入格式
从文件 u.in 中读入数据。
第一行两个整数 n,q。
接下来 q 行,每行四个整数 r,c,l,s,代表一次操作。
输出格式
输出到文件 u.out 中。
输出一行,一个整数,代表答案。
样例输入
文本
10 4
1 1 10 1
5 5 4 4
1 9 4 3
3 3 5 2
样例输出
样例解释
最终矩阵为:
文本
1 0 0 0 0 0 0 0 3 0
1 1 0 0 0 0 0 0 3 3
1 1 3 0 0 0 0 0 3 3
1 1 3 3 0 0 0 0 3 3
1 1 3 3 7 0 0 0 0 0
1 1 3 3 7 7 0 0 0 0
1 1 3 3 7 7 7 0 0 0
1 1 1 1 5 5 5 5 0 0
1 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1
数据范围
保证 n∈[1,103],q∈[0,3×105],r,c,l∈[1,n],s∈[1,109]。
| Subtask |
分值 |
n≤ |
q≤ |
其他限制 |
| 1 |
1 |
103 |
0 |
|
| 2 |
19 |
3×102 |
4×102 |
无 |
| 3 |
27 |
|
2×103 |
|
| 4 |
14 |
103 |
|
保证 r+l=n+1 且 c=1 |
| 5 |
17 |
|
3×105 |
保证 r+l=n+1 |
| 6 |
22 |
|
|
无 |