雅礼集训 Day3 T2 u 解题报告

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:


原文地址:https://www.cnblogs.com/butterflydew/p/9740823.html