编程题
### 问题描述 小然是一位音乐家,他正尝试创作一首新的曲子。他的曲子是由一连串的音符构成的,音符可以用一个整数表示,代表这个音符的音高。小然发现,如果一个音符序列(子序列)中,每个相邻音符的音高差的总和(从左到右计算)与序列的最后一个和第一个音符的音高差不同,那么他就会觉得这个序列是“不稳定”的,这样的音阶会让他的曲子听起来格外有趣。 现在,他写下了一个长度为 $N$ 的音符序列 $A_1, A_2, ..., A_N$。他想知道在这个序列中,有多少个“不稳定”的子序列。 我们定义一个子序列 $A[l, r]$ (其中 $1 \leq l \leq r \leq N$),并定义一个函数 $f(l, r) = \sum_{i=l}^{r-1} (A_i - A_{i+1})$,如果 $f(l, r) \neq (A_r - A_l)$,那么这个子序列就是“不稳定”的。 请你帮助小然计算出这个音符序列中一共有多少个“不稳定”的子序列。 ### 输入格式 输入的第一行包含一个整数 $T$,表示有 $T$ 组测试数据。 - 对于每组测试数据,第一行包含一个整数 $N$,表示音符序列的长度。 - 第二行包含 $N$ 个空格分隔的整数 $A_1, A_2, ..., A_N$,表示音符序列。 ### 输出格式 对于每组测试数据,输出一行,表示这个音符序列中“不稳定”的子序列的数量。 ### 样例输入 ```text 3 3 10 20 30 4 1 2 1 2 5 1 2 3 4 5 ``` ### 样例输出 ```text 3 4 10 ``` ### 说明 对于第一组测试数据,有三个“不稳定”的子序列:$A[1, 2]$, $A[1, 3]$ 和 $A[2, 3]$。 对于第二组测试数据,有四个“不稳定”的子序列:$A[1, 2]$, $A[1, 4]$, $A[2, 3]$ 和 $A[3, 4]$。 ### 评测数据范围 $1 \leq T \leq 10^5$。 $1 \leq N \leq 10^5$。 $0 \leq A_i \leq 10^9$。 所有测试数据中 $N$ 的总和不超过 $5 \times 10^5$。
查看答案
赣ICP备20007335号-2