题目描述
现有 2n 张牌,每张牌由 1 到 2n 记上数字,为了公平,现需进行洗牌,每次洗牌操作如下:
- 讲所有奇数位上的牌依次取出组成新的一堆牌。
- 将新的一堆牌放在旧有的牌前面。
如 12345678 洗一次后变为 13572468 再洗一次变为 15263748。
现在有 6 个长度为 m 的组,n,x,l,r,t,ans。
其中 ansi 等于 2ni 张牌洗了 xi 次牌后,把第 li 到 ri 张牌上的数字均加 ti 并依次异或后的异或值 mod2n−1。
已知当 i≥1 时 n,x,l,r,t 数组满足以下公式:
- ni=(ansi−1+i−1)mod5+base
- li=(ansi−1×2+li−1+i−1)mod2ni+1
- $r_i=(ans_{i-1}+1+l_i\mod2^{\lfloor\frac{n_i}{2}\rfloor}\times2^{\lfloor\frac{n_i}{2}\rfloor}))\mod2^{n_i}+1$
- if(li>ri)swap(li,ri)
- xi=(ri−li+ti−1+i)mod2ni
- ti=(li+ri)mod2ni
现给出 n0,x0,l0,r0,t0 的数值,求 ansm−1 为多少。
输入格式
第一行包含一个整数 m,表示数据个数。
接下来一行包含六个整数,分别为 n,x,l,r,t,Base。
输出格式
输出包含 m 行,每行一个数,表示最后的答案。
2
5 1 4 27 3 15
2700
数据规模与约定
对于 100% 的数据,m≤5×106,n≤60,0<l≤r≤2n,0<x,t<109,Base≤55。
题目来源
By 佚名提供