(lanqiaoOJ3382 二维前缀和)区间次方和
蓝桥设定首先变量大小要按照给定数据的大小范围设定,样式测试用例非提交测试用例
建立一张行为1--5的k次方 列为数组的当k行的k阶前缀和的二维表
需要什么范围的直接输入提取就行
#include<iostream>
#include<cmath>
using namespace std;
const int N = 1e5 + 10;
const int MOD=1e9+7;
long long a[N];
long long b[N][10];
int main()
{
int n,m;
int l,r,k;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=5;i++)
{
for(int j=1;j<=n;j++)
{
b[j][i]=b[j-1][i]+pow(a[j],i);
}
}
for(int i=1;i<=m;i++)
{
cin >> l >> r >> k;
cout << (b[r][k] - b[l - 1][k]) % MOD << "\n";
}
return 0;
}