u
题目背景
(frac 14) 遇到了一道水题,完全不会做,于是去请教小( ext{D})。小( ext{D})看了一眼就切掉了这题,嘲讽了(frac 14)一番就离开了。
于是,(frac 14)只好来问你,这道题是这样的:
题目描述
考虑一个(n imes n)的矩阵(A),初始所有元素均为(0)。
执行(q)次如下形式的操作:给定(4)个整数(r,c,l,s),对于每个满足(xin [r,r+l),yin [c,x-r+c])的元素((x,y)),将权值增加(s)。也就是,给一个左上顶点为((r,c))、直角边长为(l)的下三角区域加上(s)。
输出最终矩阵的元素异或和。
输出输出格式
输入格式
从文件u.in
中读入数据。
第一行两个整数(n,q)。
接下来(q)行,每行四个整数(r,c,l,s),代表一次操作。
输出格式
输出到文件u.out 中。
输出一行,一个整数,代表答案。
数据范围
保证(nin [1,10^3]),(qin [0,3 imes 10^5]),(r,c,lin [1,n]),(sin [1,10^9])。
( ext{Subtask}) | 分值 | (nle) | (qle) | 其他限制 |
---|---|---|---|---|
(1) | (1) | (10^3) | (0) | 无 |
(2) | (19) | (3 imes 10^2) | (4 imes 10^2) | 无 |
(3) | (27) | (10^3) | (2 imes 10^3) | 无 |
(4) | (14) | (10^3) | (3 imes 10^5) | 保证(r+l=n+1)且(c=1) |
(5) | (17) | (10^3) | (3 imes 10^5) | 保证(r+l=n+1) |
(6) | (22) | (10^3) | (3 imes 10^5) | 无 |
没有修改为啥不直接查分呢??
我居然只写了拿差分暴力的分。。
注意到改差分数组是改一个列和一个斜着的东西
然而这些都可以看做是连续的
于是可以维护差分数组的差分
最后才加回去
Code: