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