?
题意:
给定一个由0~9组成的矩阵,我们求行相邻的组成的数与列相邻的组成的数的和。
eg:
123
456
789
第一行组成的数有 1,2,3,12,23,123
第一列组成的数有 1,4,7,12,47,147.
暴力枚举所有的数肯定是不可取的,我们试着总结。
我们发现a[x][y]在行里出现的数对以后和的贡献为 x*a[x][y]sigma(10 ^(n-i)) (k<=x<=n)
同理a[x][y]在列里出现的数对以后和的贡献为 y*a[x][y]sigma(10 ^(n-i)) (y<=x<=n)
我们设sum[x]表示第x行与第x列的数的和 然后对以上的公式进行合并
sum = sigma( i * sum[i] * ( sigma(10^k)(i<=k<=n)))(1<=i<=n)
sigma(10^k)(i<=k<=n)用到等比数列求和,有除法,需要用到逆元
a/b (mod c) == a (mod b*c)/c
或者 a*~b (mod c)
代码如下:
#include
#include
#include
#include
#include
#include
#include
?