CF2252E Generational Triplets
题目描述
给定一个整数 $n$。求满足以下条件的三元组 $(a,b,c)$ 的个数:
- $1 \le a < b < c \le n$;
- $a,b,c$ 构成等差数列(即 $b-a=c-b$);
- $a \oplus b \oplus c = 0$,其中 $\oplus$ 表示[按位异或运算](https://en.wikipedia.org/wiki/Bitwise_operation#XOR)。
由于答案可能很大,你只需要输出答案对 $10^9+7$ 取模后的结果。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 $t$($1 \le t \le 10^4$)。接下来是每个测试用例的描述。
每个测试用例包含一个整数 $n$($3 \le n \le 10^{18}$)。
输出格式
对于每个测试用例,输出一行一个整数,表示满足条件的三元组 $(a,b,c)$ 的个数对 $10^9+7$ 取模后的结果。
说明/提示
在第一个测试用例中,$n=3$ 时,唯一合法的三元组是 $(1,2,3)$。它满足等差数列条件,因为 $2-1=3-2=1$,也满足异或条件,因为 $1 \oplus 2 \oplus 3 = 0$。
对于更大的 $n$,请确保输出答案对 $10^9+7$ 取模。