2019 计蒜之道 初赛 第二场 矩阵求值

题目背景
百度在 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))
posted @ 2019-05-27 12:01  Mr.doublerun  阅读(18)  评论(0)    收藏  举报