[湖北省选模拟 2024] 花神诞日 / sabzeruz
题目背景
传说,之所以这个日子会叫做「花神诞日」,其实最早是「花神祝诞」的意思。
在很久很久以前,有一次树王大人过生日,她的朋友们举办了宴席为她祝寿。
宴席上,几位神明大人都喝醉了,其中一位便乘兴弹奏起了乐器,于是树王大人唱歌,花神大人就跳起舞来。
在花神大人起舞时,她踏过的草地上,长出了无数美丽的帕蒂沙兰……
啊,若是时间能永驻此刻就好了。
题目描述
你正在为花神诞日准备宴席。你一共有 $N$ 种食材,依次编号为 $1,2,\cdots, N$,第 $i$ 种食材的味道为 $a_i$,任意两种食材的味道都不相同。你希望用这 $N$ 种食材做两道菜,每种食材必须被在**恰好**一道菜中使用。每道菜至少使用一种食材。
同一道菜中不同食材的味道会**两两发生反应**。食材 $i$ 与食材 $j$ 反应,将产生 $a_i \oplus a_j$ 的味道,其中 $\oplus$ 表示异或运算。一道菜最终的味道为**两两反应产生的味道的最小值**。例如,一道菜使用了味道分别为 $2,3,4$ 的三种食材,食材将会两两反应产生 $1(2 \oplus 3)$,$6(2\oplus 4)$,$7(3\oplus 4)$ 三种味道,这道菜的味道为 $\min(1,6,7)=1$。
本真的味道最为美味。**如果一道菜只使用了一种食材,这道菜的味道为 $+\infty$。**
你希望第一道菜的味道不低于 $k_1$,第二道菜的味道不低于 $k_2$。请问,你一共有多少种做菜的方案?
**请注意:相同集合的食材,分别作为第一道菜与第二道菜是两种不同的方案。** 例如,第一道菜使用食材 $1,2,3$,第二道菜使用食材 $4,5$,与第一道菜使用食材 $4,5$,第二道菜使用食材 $1,2,3$ 是两种不同的方案。
由于答案可能很大,你只需要输出答案对 $10^9+7$ 取模的值。
输入输出格式
输入格式
输入共两行。
输入的第一行为三个正整数 $N,k_1,k_2$,分别表示食材的种类数、第一道菜与第二道菜要求的味道。
输入的第二行包含 $N$ 个正整数 $a_1,a_2,\cdots,a_N$,$a_i$ 表示第 $i$ 种食材的味道。
输出格式
输出一行一个整数,表示做菜的方案数对 $10^9+7$ 取模的结果。
输入输出样例
输入样例 #1
2 10 10
1 2
输出样例 #1
2
输入样例 #2
4 2 5
5 3 1 4
输出样例 #2
5
输入样例 #3
见选手目录下的 sabzeruz/sabzeruz3.in 与 sabzeruz/sabzeruz3.ans。
输出样例 #3
该样例符合测试点 9 ∼ 11 的限制。
输入样例 #4
见选手目录下的 sabzeruz/sabzeruz4.in 与 sabzeruz/sabzeruz4.ans。
输出样例 #4
该样例符合测试点 12 ∼ 15 的限制。
输入样例 #5
见选手目录下的 sabzeruz/sabzeruz5.in 与 sabzeruz/sabzeruz5.ans。
输出样例 #5
说明
### 样例解释 2
做菜的五种方式列举如下:
- 第一道菜使用食材 $1,2,3$,第二道菜使用食材 $4$。
- 第一道菜使用食材 $1,2$,第二道菜使用食材 $3,4$。
- 第一道菜使用食材 $1,3$,第二道菜使用食材 $2,4$。
- 第一道菜使用食材 $2,3,4$,第二道菜使用食材 $1$。
- 第一道菜使用食材 $3,4$,第二道菜使用食材 $1,2$。
### 子任务
对于所有测试数据,保证 $1 \le N \le 2\times 10^5$,$1 \le k_1,k_2,a_i <2^{60}$。对于任意的 $1 \le i<j \le N$,有 $a_i \neq a_j$。
| 测试点编号 | $N\le$ | 特殊性质 |
| :--:|:--:|:--:|
| $1$ | $18$ | 无 |
| $2\sim 3$ | $5\times 10^3$ | A |
| $4\sim 8$ | $5\times 10^3$ | 无 |
| $9\sim 11$ | $2\times 10^5$ | A |
| $12\sim 15$ | $2\times 10^5$ | B |
| $16\sim 25$ | $2\times 10^5$ | 无 |
特殊性质 A:保证 $k_1=k_2$。
特殊性质 B:保证 $k_1=1$。