额外提供 $60\%$ 的时间。
小 K 有 $n$ 颗糖果,他想把这些糖果分配给若干位学生。
为了学生的健康,每位学生不得吃超过 $5$ 颗糖果。于是,他把这 $n$ 颗糖果放成一堆,并进行以下操作:
- 对每堆糖果都进行判断和操作。
- 假设其中一堆糖果内有 $k$ 颗糖果,小 K 会对这堆糖果进行以下判断和操作:若 $k>5$,小 K 会把这堆糖果分成左右两堆,把其中 $⌊k/3⌋$ 颗糖果放到左边的新堆内,而原来的堆内其余的糖果会被放到右边的新堆内;否则,他不会对这堆糖果进行操作。
小 K 会不断重复操作直到所有的糖果堆内的糖果数量都不大于 $5$。
操作完成后,记刚好有 $i$ 颗糖果的糖果堆的数量为 $a[i]$。小 K 想考考你的计算能力,于是他让你计算 $a[1]⊕a[2]⊕a[3]⊕a[4]⊕a[5]$ 的值。其中 $⊕$ 表示二进制按位异或运算。
從标准输入 (stdin) 读入数据。
本题有多组测试数据。
输入的第一行包含一个正整数 $T$,表示测试数据组数。
对于每组测试数据:
- 仅含一行,包含一个正整数 $n$。
输出到标准输出 (stdout) 中。
对于每组测试数据:
- 输出一行,一个整数表示 $a[1]⊕a[2]⊕a[3]⊕a[4]⊕a[5]$ 的值。
1 10
1
操作前,只有一堆糖果,其糖果数量为 $10$。
小 K 会把这堆糖果分成左右两堆。他会把 $⌊10/3⌋=3$ 颗糖果放到左边的新堆内,原来的堆内其余的 $10-3=7$ 颗糖果会被放到右边的新堆内。
现在,有两堆糖果,其糖果数量分别为 $3,7$。
由于第一堆糖果的糖果数量不大于 $5$,因此不进行操作。
小 K 会把第二堆糖果分成左右两堆。他会把 $⌊7/3⌋=2$ 颗糖果放到左边的新堆内,原来的堆内其余的 $7-2=5$ 颗糖果会被放到右边的新堆内。
现在,有三堆糖果,其糖果数量分别为 $3,2,5$。由于没有一堆糖果的糖果数量大于 $5$,操作结束。
因此,$a=[0,1,1,0,1]$,则 $a[1]⊕a[2]⊕a[3]⊕a[4]⊕a[5]=1$。
数据范围:
- $T≤5\times 10^4$
- $n≤10^9$
测试点 $1,2$ 满足:$T\le 10, n\le 20$。
测试点 $3,4$ 满足:$T\le 10, n\le 10^6$。
测试点 $5$~$8$ 满足:$T\le 10$。
测试点 $9$~$14$ 满足:$T\le 10^4, n\le 10^6$。
测试点 $15,16$ 满足:$T\le 10^4, n\le 10^8$。
测试点 $17,18$ 满足:$T\le 10^4$。
测试点 $19,20$ 没有额外的约束条件。
| ID | User | Problem | Subject | Hit | Post Date |
沒有發現任何「解題報告」 |
|||||