检测到 KaTeX 加载失败,可能会导致文中的数学公式无法正常渲染。
#题面
#题目描述
小 P 在二维平面的原点 ,他现在朝着 y 轴正方向。
他会以如下方式放 个球,第 个的重量为 :
在 步,他会放下第 个球;若他的右方第一个整点没有放球,那么向右转;向前走一单位长度。
前 25 步为:
21 22 23 24 25
20 7 8 9 10
19 6 1 2 11
18 5 4 3 12
17 16 15 14 13
小 P 回询问 次,所有横坐标在 中,纵坐标在 中的整点,上面球的重量的和,答案可能很大,对 $2^{63} $取模。
#输入格式
第一行一个整数 。
接下来 行,每行四个整数 。
#输出格式
一行一个整数,你的答案。
#输入输出样例
样例输入 #1
1
0 0 0 1
样例输出 #1
9
样例解释 #1
。
#数据范围与约定
令 为满足以下条件的最小正整数:。
有:。
- Subtask 1 (1 pts):;
- Subtask 2 (2 pts):;
- Subtask 3 (3 pts):;
- Subtask 4 (4 pts):;
- Subtask 5 (5 pts):;
- Subtask 6 (85 pts):。
#思路
显然可以使用类似二维前缀和的思想将每次询问转化为求 矩形内所有数的和。
可以发现一个规律,在直线 上的点 的值为 。则有 的值为 , 的值为 。为了方便后面的计算,可以用 来表示,其值为 ,其中 为 的值。
接下来,对于矩形 ,可以将其分为三部分:
-
有行有列的折线,这条折线的和为:
-
仅有行()
-
仅有列()
之后分别统计矩形中这三部分的元素和即可。
附录
注:本文的推导过程中省略了一些非关键步骤。
#代码
1 |
|