Featured image of post 区间次方和-蓝桥杯

区间次方和-蓝桥杯

416 字

区间次方和 - 3382

题目:

给定一个长度为n的整数数组α以及m个查询。每个查询包含三个整数l,r,k表示询问l~r之间所有元素的k次方和。请对每个查询输出一个答案,答案对 109 + 7 取 模。

输入格式:

第一行输入两个整数n,m其含义如上述。

第二行输入n个整数a[1],a[2],….,a[n]。

接下来m行,每行输入三个整数l,r,k表示一个查询。

输出格式:

输出m行,每行一个整数,表示查询的答案对109 + 7取模的结果。

样例输入:

1
2
3
4
5
5 3
1 2 3 4 5
1 3 2
2 4 3
3 5 1

样例输出:

1
2
3
14
99
12

数据规模:

数据评测

最终代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        long mod = 1000000007;
        int a[] = new int[n + 1];
        long s[][] = new long[6][n + 1];
        for (int i = 1; i <= n; i++) {
            a[i] = sc.nextInt();
        }
        for (int i = 1; i <= n; i++) {
            int cur = 1;
            for (int k = 1; k <= 5; k++) {
                cur = (int) (cur * a[i] % mod);
                s[k][i] = (s[k][i - 1] + cur) % mod;
            }
        }
        for (int i = 1; i <= m; i++) {
            int l = sc.nextInt();
            int r = sc.nextInt();
            int k = sc.nextInt();
            long result = s[k][r] - s[k][l - 1];
            System.out.println(result);
        }
    }
}
本博客已稳定运行 0
发布了 9 篇文章 | 共 8.8K
Hugo 主题 Stack 由Jimmy设计
Chiba
...