C. 等差数列子段(subsegment)

    传统题 文件IO:subsegment 1000ms 256MiB

等差数列子段(subsegment)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

【题目描述】

小灰灰有一个长度为 nn 的数组:a1,a2,…,ana_1, a_2, \dots, a_n。

小蓝想知道这个数组中有多少个连续子段,是等差数列(特别的,长度为 11 的子段一定是等差数列)。

形式化的说,你需要确定有多少个 l,rl, r 二元组,满足 1≤l≤r≤n1\le l \le r \le n,且对于所有的 1≤i<r1\le i < r 均有 ai+1−ai=al+1−ala_{i+1} - a_{i} = a_{l+1} - a_l 成立。


【输入描述】

第一行一个整数表示 nn

接下来一行 nn 个空格分隔的整数,分别代表 a1,a2,…,ana_1, a_2, \dots , a_n

保证:

  • 1≤n≤3×1051\le n \le 3\times 10^5
  • 1≤ai≤1091\le a_i\le 10^9

【输出描述】

输出一行一个整数表示答案。


【样例 1】

【样例 1 输入】

5
3 2 1 2 2

【样例 1 输出】

10

【样例 1 解释】

共有 10 个连续子段符合要求:[1,1][1, 1] 3,[1,2][1, 2] 3 2,[1,3][1, 3] 3 2 1,[2,2][2, 2] 2,[2,3][2, 3] 2 1,[3,3][3, 3] 1,[3,4][3, 4] 1 2,[4,4][4, 4] 2,[4,5][4, 5] 2 2,[5,5][5, 5] 2。这里 [l,r][l, r] 表示选择了数组中从 ll 到 rr 的这一段连续区间。

【样例 2】

【样例 2 输入】

9
1 1 1 1 2 2 2 2 2

【样例 2 输出】

26

【样例 3】

【样例 3 输入】

9
1 2 3 4 5 6 7 8 9

【样例 3 输出】

45

【数据规模与约定】

分数 特殊性质
15 1≤n≤1001\le n \le 100
25 1≤n≤50001\le n \le 5000
10 数组中所有元素均相同
20 数组中元素单调递增
30 1≤n≤3×1051\le n\le 3\times 10^5

信息学创新大赛模拟赛#4(中学组 - 初赛)

未参加
状态
已结束
规则
IOI
题目
5
开始于
2026-5-15 14:00
结束于
2026-5-24 23:00
持续时间
2.5 小时
主持人
参赛人数
93