企业网站建设的目标,搜索引擎官网,做衣服的3d软件,免费正版高清图片素材库正题 题目大意 n∗nn*nn∗n的矩阵#xff0c;每次让一个下三角形内数字加上一定权值。求最后所有位置的异或和 解题思路
我们发现如果我们对于没行做前缀和的话#xff0c;我们需要修改的位置就是一个竖直下去的一列和斜着的一条#xff0c;所以我们可以分别对于竖着的和斜…正题 题目大意
n∗nn*nn∗n的矩阵每次让一个下三角形内数字加上一定权值。求最后所有位置的异或和 解题思路
我们发现如果我们对于没行做前缀和的话我们需要修改的位置就是一个竖直下去的一列和斜着的一条所以我们可以分别对于竖着的和斜着的做一次差分我们就可以求出该矩形的差分 codecodecode
#includecstdio
#includecstring
#includealgorithm
#define ll long long
using namespace std;
const ll N2100;
ll n,q,a[N][N],b[N][N],s[N][N],ans;
int main()
{scanf(%lld%lld,n,q);while(q--){ll x,y,l,s;scanf(%lld%lld%lld%lld,x,y,l,s);lmin(l,n);a[x][y]s;a[xl][y]-s;b[x][y1]s;b[xl][yl1]-s;}for(ll i1;in;i)for(ll j1;jn;j)a[i][j]a[i-1][j],s[i][j]a[i][j];for(ll i1;in;i)for(ll j1;jn;j)b[i][j]b[i-1][j-1],s[i][j]-b[i][j];for(ll i1;in;i)for(ll j1;jn;j)s[i][j]s[i][j-1],ansans^s[i][j];printf(%lld,ans);
}