P12833 [蓝桥杯 2025 国 B] 斐波那契字符串
题目描述
斐波那契字符串 $S$ 是由 $\tt 0$ 和 $\tt 1$ 所组成的字符串,其生成规则如下:
- $S_1 = \tt 0$。
- $S_2 = \tt 1$。
- 对于任意正整数 $n (n \geq 3)$,$S_n = S_{n-2} + S_{n-1}$(“+”表示字符串拼接)。
例如:$S_3 = 01$、$S_4 = 101$、$S_5 = 01101$。
在斐波那契字符串 $S$ 中,定义逆序对为满足以下条件的整数对 $(i, j)$:
- $1 \leq i < j \leq |S|$(其中 $|S|$ 表示 $S$ 的长度)。
- $S[i] = 1$(第 $i$ 个字符为 $\tt 1$)并且 $S[j] = 0$(第 $j$ 个字符为 $\tt 0$)。
现在,给定一个正整数 $N$,请你计算出 $S_N$ 中所有逆序对 $(i, j)$ 的总数。由于结果可能很大,请输出其对 $10^9 + 7$ 取余后的值。
输入格式
输入的第一行包含一个整数 $T$,表示测试用例的数量。
接下来的 $T$ 行,每行包含一个整数 $N$,表示要计算的斐波那契字符串的序号。
输出格式
对于每个测试用例,输出一行,包含一个整数,表示 $S_N$ 中所有逆序对的总数对 $10^9 + 7$ 取余后的结果。
说明/提示
**【样例说明】**
对于 $N = 3$,$S_3 = 01$,逆序对总数为 0。
对于 $N = 5$,$S_5 = 01101$,逆序对为 $(2, 4)$、$(3, 4)$,总数为 2。
**【评测用例规模与约定】**
对于 20% 的评测用例,$1 \leq T \leq 20$,$3 \leq N \leq 35$。
对于 100% 的评测用例,$1 \leq T \leq 10^5$,$3 \leq N \leq 10^5$。