题目背景
百度在 X 市 XX 中学举办了一场 AI 知识小课堂,本场 AI 知识小课堂老师教授了一些矩阵的相关知识,因为矩阵在 AI 人工智能中也有相当的应用。
题目描述
一个同学 LSQ 在小课堂后对矩阵产生极大的感兴趣,他想到了一个对矩阵求和的问题,但是这个矩阵实在太大了,他算不过来,你能帮帮他吗?
这个矩阵长这个样子,其右方和下方是没有边界的,但是不要担心,他并不要求你对整个矩阵求和,他只想知道,第 a 行第 c 列的格子为左上,第 b 行第 d 列的格子为右下的子矩阵中所有元素的和是多少?
方便起见,请将答案乘 2,再对 332748118 取模后输出
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | … |
---|---|---|---|---|---|---|---|---|---|
2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | … |
3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | … |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | … |
5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | … |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | … |
7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | … |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | … |
9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | … |
… | … | … | … | … | … | … | … | … | … |
小学奥数
因为答案乘二,可以想到将矩阵旋转180叠加起来,每个数都为 a+b+c+d-2.
用cpp,动不动就溢出,还有可能出现负数,建议使用慢速乘。
#py3
a, b, c, d = map(int, input().split())
mod =int(332748118)
ans=(d-c+1)*(b-a+1)*(a+b+c+d-2);
print(int(ans%mod))