思路
为了计算更加快速,如果遇到繁琐,冗余的计算 例如:求 1 加到 n ,2 加到 n 3 加到 n 一直到 n 加到 n
另外,前缀和适用于矩阵求和 可以简单画图推导一下公式
前缀和 2024-03-27 22.46.12.excalidraw
⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠
Text Elements
s[i][j] = s[i-1][j] + s[i][j-1] - s[i-1][j-1]
Link to original
实现
//一般留下第一个为0
for(int i = 1; i <= n; i ++)
{
cin >> a[i];
a[i] += a[i-1];
}
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= n; j ++)
{
cin >> s[i][j];
s[i][j] += s[i-1][j] + s[j-1][i] - s[i-1][j-1];
}