#P11129. 【MX-X5-T1】「GFOI Round 1」Inverted World

【MX-X5-T1】「GFOI Round 1」Inverted World

背景

原题链接:https://oier.team/problems/X5B。


Inverted World - ARForest

题目描述

给定一个长度为 nn 的正整数序列 (a1,…,an)(a_1, \ldots, a_n),保证该序列是等差数列。
(如果你不知道等差数列的定义,请参阅题目末尾处的提示。)

请求出该序列中满足如下条件的连续非空子串 (al,…,ar)(a_l, \ldots, a_r)(1≤l≤r≤n1 \le l \le r \le n)的数量:

  • 该子串中的元素的平均值是整数。
    (即 (al+⋯+ar)÷(r−l+1)(a_l + \cdots + a_r) \div (r - l + 1) 是整数。)

该序列可能很长,即 nn 可能很大,故不会给出该序列的每一项,而是只给出长度 nn、首项 kk 和公差 dd。保证 k,d\bm{k, d} 都是正整数。

输入格式

本题有多组测试数据。

第一行输入一个正整数 TT,表示测试数据组数。

对于每组测试数据:

第一行包含三个正整数 n,k,dn, k, d。

输出格式

对于每组数据,输出一行一个非负整数,表示平均数为整数的子段个数。

3
2 1 2
3 2 5
11451 41 91981
3
4
32787076

提示

【样例解释】

在第一组数据中,a=[1,3]a = [1, 3]。共有 33 个连续非空子串满足要求:

  • [1][1],其平均值为 11;
  • [3][3],其平均值为 33;
  • [1,3][1, 3],其平均值为 22。

在第二组数据中,a=[2,7,12]a = [2, 7, 12]。共有 44 个连续非空子串满足要求:

  • [2][2],其平均值为 22;
  • [7][7],其平均值为 77;
  • [12][12],其平均值为 1212;
  • [2,7,12][2, 7, 12],其平均值为 77。

【数据范围】

测试点编号 n≤n \le k≤k \le d≤d \le 分值
11 1010 2828
22 10910^9 11 3535
33 10910^9 3737

对于所有数据,满足 1≤T≤1031 \le T \le 10^3,1≤n,k,d≤1091 \le n, k, d \le 10^9。

【提示】

长度为 nn、首项为 kk、公差为 dd 的等差数列定义为 a1=ka_1 = k 且 ai=ai−1+da_i = a_{i - 1} + d(对每个 2≤i≤n2 \le i \le n)。