#609. 回顾前缀和

回顾前缀和

No testdata at current.

前缀和知识

哈喽呀,我是信息学ai教师小艾老师🤗,很高兴能和老师、同学们一起探讨信息学知识。

现在咱们来回顾前缀和的知识要点啦😎。前缀和是一种很有用的算法技巧呢,简单来说,前缀和就是把前面的数都加起来得到的和。

比如说,有一串数字 1、2、3、4、5。那第一个数的前缀和就是它自己 1;第二个数的前缀和就是 1 + 2 = 3;第三个数的前缀和就是 1 + 2 + 3 = 6;第四个数的前缀和是 1 + 2 + 3 + 4 = 10;第五个数的前缀和是 1 + 2 + 3 + 4 + 5 = 15。

下面给大家举两个生活中的例子🌰。

第一个例子

第一个例子是存钱罐存钱。假如你每天往存钱罐里放不同数量的零花钱, 第一天放 5 元,第二天放 3 元,第三天放 7 元,第四天放 2 元,第五天放 6 元。那每天结束后存钱罐里一共有的钱数就是前缀和啦。

第一天结束有 5 元,这就是第一天的前缀和;第二天结束有 5 + 3 = 8 元,这是第二天的前缀和; 第三天结束有 5 + 3 + 7 = 15 元,这是第三天的前缀和; 第四天结束有 5 + 3 + 7 + 2 = 17 元,这是第四天的前缀和; 第五天结束有 5 + 3 + 7 + 2 + 6 = 23 元,这是第五天的前缀和。 在这里,前缀和就可以让我们快速知道到某一天为止一共存了多少钱。

第二个例子

第二个例子是跑步计数。你在操场上跑步,第一圈跑了 400 米,第二圈跑了 350 米,第三圈跑了 420 米,第四圈跑了 380 米。那到每一圈结束时你一共跑的距离就是前缀和。

第一圈结束跑了 400 米,这是第一圈的前缀和; 第二圈结束跑了 400 + 350 = 750 米,这是第二圈的前缀和; 第三圈结束跑了 400 + 350 + 420 = 1170 米,这是第三圈的前缀和; 第四圈结束跑了 400 + 350 + 420 + 380 = 1550 米,这是第四圈的前缀和 。通过前缀和,我们能很方便地知道到某一圈时总共跑了多远。

前缀和的运用

哈喽呀,还是我小艾老师哦😘。咱们来说说怎么运用前缀和。

运用前缀和主要就是为了能快速地求出一段区间内数字的和。就像刚刚说的存钱罐和跑步的例子,要是我们想知道某一段时间内存了多少钱,或者某几圈一共跑了多远,用前缀和就能很快算出来。

还是拿那串数字 1、2、3、4、5 来说,它的前缀和分别是 1、3、6、10、15。如果我们想知道从第二个数到第四个数的和是多少,就可以用第四个数的前缀和减去第一个数的前缀和。第四个数前缀和是 10,第一个数前缀和是 1,那 10 - 1 = 9,这就是 2 + 3 + 4 的和啦。

再回到存钱罐的例子,假如我们想知道第三天和第四天一共存了多少钱。第四天的前缀和是 17 元,第二天的前缀和是 8 元,那第三天和第四天存的钱就是 17 - 8= 9 元。

还有跑步的例子,要是想知道第二圈到第三圈一共跑了多远。第三圈的前缀和是 1170 米,第一圈的前缀和是 400 米,那 1170 - 400 = 770 米,这就是第二圈到第三圈跑的距离。

所以呀,运用前缀和的时候,先算出每个位置的前缀和,然后用后面位置的前缀和减去前面位置的前缀和,就能快速得到这一段区间内数字的和啦😎。

补全程序

求数组从 x 到 y 区间的和

#include<bits/stdc++.h>
using namespace std;
int a[105],b[105],n,x,y,s; 
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		b[i]=     +     ;
	}	
	cin>>l>>r;
	s=b[  ]-b[  ];
	cout<<s;
	return 0;
}