#P13240. 「2.48sOI R1」猜数

「2.48sOI R1」猜数

题目描述

Misserina 有一个小于 nn 的自然数 xx,而 lizihan250 并不知道 xx 的值。

现在,lizihan250 准备了 mm 张卡片,每张卡片上都写有一些互不相同的小于 nn数字。接着,Misserina 会告诉 lizihan250 xx 在哪些卡片上出现,而另外的卡片上 xx 未出现。lizihan250 需要根据 Misserina 提供的信息,猜出 xx 的值。

如果每次都用一套卡片,这个游戏将变得很枯燥。因此,lizihan250 想知道,在保证根据 Misserina 提供的信息一定能猜出唯一确定的 xx,且 mm 最小的情况下,有多少种不同的在卡片上写数字的方式?两种方式相同,当且仅当它们使用的卡片数相同,且交换一种方式中卡片的前后顺序可以得到另外一种方式。答案对 109+710^9+7 取模。

形式化题意

一个集合 AA 是“好的集合”,当且仅当集合 AA 包含若干个由一些自然数组成的集合,且对于 0i<j<n(i,jN)\forall 0 \le i < j < n (i,j \in \mathbb{N})AA 中至少存在一个集合 BB,使得 iBi \in BjBj \notin B,或 iBi \notin BjBj \in B

令“好的集合”AA 的元素数量最小值为 mm,试求出满足 A=m|A| = m 的“好的集合”AA 的数量,并对 109+710^9+7 取模。

输入格式

一个测试点中含有多个互相独立的测试数据。

第一行,一个正整数 tt,表示测试数据的数量。

接下来 tt 行,每行一个正整数 nn

输出格式

tt 行,每行一个整数,第 ii 行的数表示第 ii 组测试数据的答案数对 109+710^9+7 取模的值。

3
2
8
29
2
6720
195120252

提示

样例解释

对于样例一,最少应当使用 11 张卡片,有如下两种方案:

  1. 在这张卡片上只写下一个 00。此时,若 Misserina 回答“在这张卡片上存在 xx”,则 x=0x=0,否则 x=1x=1
  2. 在这张卡片上只写下一个 11,跟上一种情况相反。

对于样例二,最少应当使用 33 张卡片,一种方案为三张卡片分别包含 {1,2,3,7},{1,2,5,6}\{1,2,3,7\},\{1,2,5,6\}{1,3,4,5}\{1,3,4,5\}

数据规模与约束

本题采用捆绑测试

对于 100%100\% 的数据,有 1n1061 \le n \le 10^6

Subtask 编号 分值 tt nn 特殊性质
00 2323 10\le 10 8\le 8 不符合
11 1212 1000\le 1000 符合
22 1515 105\le 10^5 106\le 10^6
33 2828 1000\le 1000 不符合
44 2222 105\le 10^5 106\le 10^6

对于符合特殊性质的测试点,保证存在整数 kk,使得 2k=n2^k = n