「SMOI-R1」Queue
题目背景
签到题……
题目描述
有一个人数为 $n$ 的队伍,队伍中第 $i$ 个人编号为 $i$。
从第一个人依次给后面的那个人传一个数,直到传到第 $n$ 个人。给后面的那个人传数的规则为:
- 第一个人的数为 $1$。
- 如果这个人的编号为奇数,那么给后面的人传的数是他现在的数**按位与**上后面那个人的编号。
- 如果这个人的编号为偶数,那么给后面的人传的数是他现在的数**按位异或**上后面那个人的编号。
求出传给第 $n$ 个人的数字。但是求一个的太好求了,所以你要求 $t$ 种情况的。
输入输出格式
输入格式
**本题有多组数据**。
第一行一个整数 $t$,表示数据组数。
对于每组数据:
只有一个数 $n$,代表队伍人数。
输出格式
对于每组数据,输出一个数,代表传给第 $n$ 个人的数字。
输入输出样例
输入样例 #1
3
1
5
10
输出样例 #1
1
5
8
说明
### 样例解释
对于第二组数据:
- 第一个人向下一个人传的数是 $1\operatorname{and}2=0$。
- 第二个人向下一个人传的数是 $0\operatorname{xor}3=3$。
- 第三个人向下一个人传的数是 $3\operatorname{and}4=0$。
- 第四个人向下一个人传的数是 $0\operatorname{xor}5=5$。
所以答案是 $5$。
### 数据范围
**本题采用捆绑测试**。
subtask 编号|$t\leq$| $n\leq$| 分值
-|-|-|-
$1$|$10^2$|$10^5$|$20$
$2$|$10^6$|$10^7$|$20$
$3$|$10^6$|$10^{18}$|$60$
对于 $100\%$ 的数据,保证 $1\le t\le10^6,1\le n\le 10^{18}$。