前缀和算法
:
创建s[N];
s[n]=a[1]+a[2]+…+a[n]
利用s[n–m]=s[m]-s[n-1];
目的是简化操作
#include
using namespace std;
const int N=100006;
int a[N],s[N];//先额外创立s[n]
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
s[i]=s[i-1]+a[i];//前缀和初始化
}
int l,r;
while(m--)
{
cin>>l>>r;
cout<<s[r]-s[l-1]<<endl;**//再利用知识点**
}
return 0;
}