#P10405. 「SMOI-R1」Queue

「SMOI-R1」Queue

题目背景

签到题……

题目描述

有一个人数为 nn 的队伍,队伍中第 ii 个人编号为 ii

从第一个人依次给后面的那个人传一个数,直到传到第 nn 个人。给后面的那个人传数的规则为:

  • 第一个人的数为 11
  • 如果这个人的编号为奇数,那么给后面的人传的数是他现在的数按位与上后面那个人的编号。
  • 如果这个人的编号为偶数,那么给后面的人传的数是他现在的数按位异或上后面那个人的编号。

求出传给第 nn 个人的数字。但是求一个的太好求了,所以你要求 tt 种情况的。

输入格式

本题有多组数据

第一行一个整数 tt,表示数据组数。

对于每组数据:

只有一个数 nn,代表队伍人数。

输出格式

对于每组数据,输出一个数,代表传给第 nn 个人的数字。

3
1
5
10
1
5
8

提示

样例解释

对于第二组数据:

  • 第一个人向下一个人传的数是 1and2=01\operatorname{and}2=0
  • 第二个人向下一个人传的数是 0xor3=30\operatorname{xor}3=3
  • 第三个人向下一个人传的数是 3and4=03\operatorname{and}4=0
  • 第四个人向下一个人传的数是 0xor5=50\operatorname{xor}5=5

所以答案是 55

数据范围

本题采用捆绑测试

subtask 编号 tt\leq nn\leq 分值
11 10210^2 10510^5 2020
22 10610^6 10710^7
33 101810^{18} 6060

对于 100%100\% 的数据,保证 1t106,1n10181\le t\le10^6,1\le n\le 10^{18}