一,前缀和:
一,前缀和是什么?
感觉和我们高中学的Sn差不少,
原数值:a1, a2, a3, a4,,,,an
前缀和Sn是前n个a的和。
前缀和:S1, S2,S3,S4,,,,Sn
二,前缀和的好处:
可以直接通过两个数值相减得到想要数值,避免多余运算,减少运行时间。
三,运用:
1,求一段数值的中的一部分数值和。
题目给出 n 个数值,求 l 到 r 中间数值的和,
2,在二维数值中,开始输入a[0][0]~a[n][n]。
for (int i = 1; i <= n; i ++ )
for (int j = 1; j <= m; j ++ )
cin >> a[i][j];
如图:
开始设置前缀和:
黄色的是前缀和的S[][],白色的是a[][],
s[i][j] = s[i][j - 1] + s[i-1][j] + a[i][j] - s[i-1][j-1];
当要求(x1,y1)到(x2,y2)时不用多余的计算,前缀和相减。