#CF1921F. 等差数列之和

    ID: 1175 传统题 2000ms 1024MiB 尝试: 1 已通过: 0 难度: 10 上传者: 标签>1900Codeforces前缀和动态规划离线处理

等差数列之和

等差数列之和

  • 时间限制:2 秒
  • 内存限制:1024 MiB

题目描述

给定一个长度为 nn 的整数数组 aa。你需要回答 qq 个查询,每个查询由三个整数 s,d,ks,d,k 描述。

对于一次查询,求

as+2as+d+3as+2d+⋯+kas+(k−1)d.a_s+2a_{s+d}+3a_{s+2d}+\cdots+ka_{s+(k-1)d}.

也就是说,从下标 ss 开始,每次向后移动 dd 个位置,共取 kk 个元素,并依次乘以 1,2,…,k1,2,\ldots,k 后求和。

输入格式

第一行包含一个整数 tt,表示测试数据组数。

每组测试数据的第一行包含两个整数 n,qn,q。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

接下来 qq 行,每行包含三个整数 s,d,ks,d,k,描述一次查询。

输出格式

对于每组测试数据,输出一行 qq 个整数,依次表示各次查询的答案,相邻整数之间用一个空格分隔。

样例输入

5
3 3
1 1 2
1 2 2
2 2 1
1 1 2
3 1
-100000000 -100000000 -100000000
1 1 3
5 3
1 2 3 4 5
1 2 3
2 3 2
1 1 5
3 1
100000000 100000000 100000000
1 1 3
7 7
34 87 5 42 -44 66 -32
2 2 2
4 3 1
1 3 2
6 2 1
5 2 2
2 5 2
6 1 2

样例输出

5 1 3
-600000000
22 12 55
600000000
171 42 118 66 -108 23 2

数据范围

保证:

  • 1≤t≤1041\le t\le 10^4;
  • 1≤n≤1051\le n\le 10^5,1≤q≤2×1051\le q\le 2\times 10^5;
  • −108≤ai≤108-10^8\le a_i\le 10^8;
  • 1≤s,d,k≤n1\le s,d,k\le n;
  • s+d(k−1)≤ns+d(k-1)\le n;
  • 所有测试数据中 nn 的总和不超过 10510^5;
  • 所有测试数据中 qq 的总和不超过 2×1052\times 10^5。
子任务编号 分值 特殊限制
1 25 所有查询均满足 d=1d=1
2 35 所有查询均满足 k≤300k\le 300
3 40 无特殊限制