4350: 不是唯一的树

内存限制:128 MB 时间限制:1 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:29 通过:1

题目描述

我们都知道,要构建传统的“二叉搜索树”,我们将较小的数字放在左侧,而较大的数字放在右侧。不同的数据顺序可能会导致不同的树结构。

在这个问题中,您需要计算有多少个不同的输入序列才能获得具有特定结构的二叉搜索树。

输入格式

第一行一个整数 t(1 <= t <= 100) 代表测试用例组数。每组测试用例包含两行:

第一行是整数 n

第二行是 [1, n] 的排列,描述根据序列顺序构造的二叉搜索树。

1 ≤ n ≤ 103.

输出格式

对于每个测试用例,输出可以构建具有相同结构的二叉搜索树的不同序列的数量,包括输入序列。

结果应为模数109+ 7.

输入样例 复制

2
4
3 2 4 1
5
3 5 2 1 4

输出样例 复制

3
6

数据范围与提示

对于第一种情况,可以创建相同的树:3 2 1 4、3 2 4 1、3 4 2 1


所以答案是 3。