#CF2101D. Mani 与子数组段
Mani 与子数组段
D. Mani 与子数组段
每个测试的时间限制: 秒
内存限制: 兆字节
题目描述
一个长度为 的数组 被称为 cute(可爱),如果它的最长递增子序列(LIS)长度与最长递减子序列(LDS)长度之和恰好比数组长度多 。
更正式地说,数组 是可爱的,当且仅当: [ \text{LIS}(b) + \text{LDS}(b) = |b| + 1 ]
补充定义
- 子序列:一个序列 是序列 的子序列,如果 可以通过从 中删除若干元素(可能为零个或全部)得到,删除位置任意。
- 最长递增子序列(LIS):数组中最长的子序列,其元素严格递增。
- 最长递减子序列(LDS):数组中最长的子序列,其元素严格递减。
输入
每个测试包含多个测试用例。
第一行包含一个整数 (),表示测试用例的数量。
每个测试用例描述如下:
- 第一行包含一个整数 (),表示排列 的长度。
- 第二行包含 个整数 (),表示排列 的元素。
保证所有测试用例的 之和不超过 。
输出
对于每个测试用例,输出排列 中 cute 的非空子数组的数量。
示例
输入:
5
3
3 1 2
5
2 3 4 5 1
4
3 4 1 2
7
1 2 3 4 5 6 7
10
7 8 2 4 5 10 1 3 6 9
输出:
6
15
9
28
36
样例解释
第一个测试用例: 所有 个非空子数组都是可爱的:
- :$\text{LIS}([3]) + \text{LDS}([3]) = 1 + 1 = 2 = |[3]| + 1$。
- :也是 。
- :。
- :,,和为 。
- :,,和为 。
- :,,和为 。
第二个测试用例: 可爱的子数组包括 ,因为 ,,。