传统题 1000ms 256MiB

波动系数

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

题目描述

小 A 是一位数据分析师,最近他在研究股票价格的波动规律。他记录了一支股票连续 N 天的价格,存储在数组 G 中。

为了分析价格的波动情况,他需要计算出某段区间内股票价格波动系数 W[L,R] W[L, R]。波动系数的计算方式为: W[L,R]W[L, R] = G[L] - G[L+1] + G[L+1] - G[L+2] + \dots + G[R-1] - G[R]。即为 i=LR1(GiGi+1)\sum_{i=L}^{R-1}{(G_i - G_{i+1})}

特别的,如果区间只有 1 天(即 L=RL = R ),则波动系数为 0,也就是对于任意 i[1,N] i \in [1, N] ,有W[i,i]=0 W[i, i] = 0

如果某个连续区间的波动系数满足 W[L,R]=G[R]G[L] W[L, R] = G[R] - G[L] ,则认为这几天的股价平稳;反之,若 W[L,R]G[R]G[L] W[L, R] \neq G[R] - G[L] ,则认为这几天的股价波动。

请编程帮助小 A 计算,在给定的 N N 天股价中,有多少个连续区间满足股价波动的条件。

输入格式

  • 第一行一个整数T T ,表示待分析的股票数量。
  • 对于每只股票的数据:
    • 第一行一个整数 N N ,表示记录的天数。
    • 第二行 N N 个整数 G1,G2,,GN G_1, G_2, \ldots, G_N ,表示每天的股价。

输出格式

对于每组数据,输出一行一个整数,表示满足股价波动条件的连续区间个数。

样例输入 1

1
4
10 20 20 10

样例输出 1

4

样例输入 2

2
6
10 20 30 10 20 30
8
10 30 10 20 40 20 10 30

样例输出 2

12
23

样例解释 1

满足股价波动条件的区间为 [1,2] [1, 2] [1,3] [1, 3] [2,4] [2, 4] [3,4] [3, 4] ,共 4 个。

以区间[2,4] [2, 4] 为例:

  • 波动系数 W[2,4]=2020+2010=10 W[2, 4] = 20 - 20 + 20 - 10 = 10
  • G[4]G[2]=1020=10 G[4] - G[2] = 10 - 20 = -10
  • 两者不相等,因此属于股价波动区间。

数据规模与限制

  • 对于所有测试数据,满足 1T10 1 \leq T \leq 10 1N1051 \leq N \leq 10^5 0Gi109 0 \leq G_i \leq 10^9

周三三人小组_作业8_区赛复习

未认领
状态
已结束
题目
6
开始时间
2025-11-20 0:00
截止时间
2025-12-6 23:59
可延期
24 小时