题意
与CF1542D1一致,只是k不再固定为2。
定义
a
⊕
k
b
a \oplus _{k} b
a⊕kb 为k进制下的
a
,
b
a,b
a,b 按位作不进位加法。
题解
引理1:
定义
a
⊖
k
b
a \ominus_{k} b
a⊖kb 为k进制下的
a
,
b
a,b
a,b 按位作不进位减法,
则
z
=
b
⊖
k
a
z = b \ominus_{k} a
z=b⊖ka(证明略)
引理2:
(
a
⊖
k
b
)
⊖
(
a
⊖
k
c
)
=
c
⊖
k
b
(a \ominus_{k} b) \ominus (a \ominus_{k} c) = c \ominus_{k} b
(a⊖kb)⊖(a⊖kc)=c⊖kb
(
b
⊖
k
a
)
⊖
(
c
⊖
k
a
)
=
b
⊖
k
c
(b \ominus_{k} a) \ominus (c \ominus_{k} a) = b \ominus_{k} c
(b⊖ka)⊖(c⊖ka)=b⊖kc(证明略)
类似D1,我们需要构造一种询问方式使得之前的询问对现在没有影响。
由以上两个引理我们得出一种构造方案:
先输出0并从1枚举到n-1。对于每个i,若i是奇数则输出
(
i
−
1
)
⊖
k
i
(i-1) \ominus _{k} i
(i−1)⊖ki,反之则输出
i
⊖
k
(
i
−
1
)
i \ominus _{k} (i-1)
i⊖k(i−1),这样当i为奇数x变为
x
⊖
k
i
x \ominus _{k} i
x⊖ki,反之变为
i
⊖
k
x
i \ominus _{k} x
i⊖kx。
引理3:
这样当i为奇数x变为
x
⊖
k
i
x \ominus _{k} i
x⊖ki,反之变为
i
⊖
k
x
i \ominus _{k} x
i⊖kx。
证明:
1. i为奇数,假设询问前x为
(
i
−
1
)
⊖
k
x
(i-1) \ominus _{k} x
(i−1)⊖kx,则询问后x变为
(
(
i
−
1
)
⊖
k
i
)
⊖
(
(
i
−
1
)
⊖
k
x
)
=
x
⊖
k
i
((i-1) \ominus_{k} i) \ominus ((i-1) \ominus_{k} x) = x\ominus_{k} i
((i−1)⊖ki)⊖((i−1)⊖kx)=x⊖ki(引理2)
2. i为偶数,假设询问前x为
x
⊖
k
(
i
−
1
)
x \ominus _{k} (i-1)
x⊖k(i−1),则询问后x变为
(
i
⊖
k
(
i
−
1
)
)
⊖
(
x
⊖
k
(
i
−
1
)
)
=
i
⊖
k
x
(i \ominus_{k} (i-1)) \ominus (x \ominus_{k} (i-1)) = i\ominus_{k} x
(i⊖k(i−1))⊖(x⊖k(i−1))=i⊖kx(引理2)
3. 对于我们的假设,可以将i代入0与1发现是正确的,所以可根据上面两个证明推得。
这样我们便能在i枚举到x时正确猜出x来。