前缀和及例题

Posted pureayu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前缀和及例题相关的知识,希望对你有一定的参考价值。

所谓前缀和,就是在一行数字中,第i个数以及它前面所有数字的和,一般都是利用前缀和计算。生活中一些算数问题也通常用到了前缀和的思想,

下面是一个例子:

假设小A作为一个会计,老板让他统计最近十天的总收入,他将这最近十天的收入算好,老板又让他计算最近五天的

营业额,小A又拿起计算器敲敲敲,老板又问最近一周的营业额,小A又拿起计算器敲敲敲。当老板再问起的时候,小A同学已经

懒得再算了。显然,这是一种低效且容易算错的算法。而如果用到前缀和,只需要在每一行的下面再加一行用来统计到当前天时的

总营业额,当需要计算某j - k天的营业额时,只需要将到第K天的总营业额减去第j天前面的总营业额就可以了。

技术图片

技术图片

 

 下面贴一个例题:

 

 

技术图片

 

 

 1 #include <iostream>                    //一维前缀和 
 2 using namespace std;
 3 int n, a[100010], f[100010], m;
 4 int main(){
 5     cin >> n >> m;
 6     f[0] = 0;
 7     for(int i = 1; i <= n; i ++){
 8         cin >> a[i];
 9         f[i] = f[i - 1] + a[i];
10     }
11     int minn = 0x3f3f3f3f;
12     for(int i = 1; i <= n - m + 1; i ++){
13         int s = f[i + m - 1] - f[i - 1];
14         if(s < minn){
15             minn = s;
16         }
17     }
18     cout << minn << endl;
19     return 0;
20 }

 

以上是关于前缀和及例题的主要内容,如果未能解决你的问题,请参考以下文章

二维前缀和例题-激光炸弹

leetcode_1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold_[二维前缀和](代码片段

xml 中的 Android 谷歌地图片段。我得到“意外的命名空间前缀”

C语言程序 从键盘输入两个小数,输出它们的和及乘积

VSCode创建自定义用户片段

扩展KMP,附上例题(HDU - 4333 Revolving Digits)