A. llh 的二叉排序树

    传统题 1000ms 256MiB

llh 的二叉排序树

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

题目描述

llh 最近学习了二叉排序树:对于树上的任意一个点,如果其存在左子树,则其左子树中所有点的数字都必须小于等于该点的数字;如果其存在右子树,则其右子树中所有点的数字都必须大于等于该点的数字。

现在 llh 拿到了 nn 个正整数,他想用这些数字建立一棵二叉排序树,但是他给自己定了一个有趣的规则

他希望这棵树中任意一条简单路径(至少包含 22 个节点)上的任意相邻两个数字的乘积,在二进制下 11 的个数为奇数个

现在他想知道有多少种方案可以构造这样的一棵二叉排序树?

这里我们认为两个数即使下标不同,只要它们的值相同,则计算方案数时就认为它们相同。

例如:n=2,a1=1,a2=1n=2,a_1=1,a_2=1,则方案数为 22。

输入格式

第一行一个正整数 TT,表示测试数据的组数。

每组数据中,第一行一个正整数 nn,第二行 nn 个正整数 aia_i。

输出格式

TT 行,表示对应的方案数模 109+710^9+7。

数据范围

对于 20%20\% 的数据,n≤10n\le 10。

对于 40%40\% 的数据,n≤20n\le 20。

对于 60%60\% 的数据,n≤50n\le 50。

对于 100%100\% 的数据,T≤10T\le 10,1≤n≤2001\le n\le 200,1≤ai≤1091\le a_i\le 10^9。

样例输入

2
3
1 2 3
3
7 2 1

样例输出

0
5

20250510提高组模拟赛(7)

未参加
状态
已结束
规则
IOI
题目
3
开始于
2025-5-10 21:30
结束于
2025-5-20 21:30
持续时间
240 小时
主持人
参赛人数
23