前言:
小清新打表题,难度很低,大体和普及组第一题的难度相当,结果还是康了题解后才做出来的。
思路详解:
根据题意,
a
i
a_i
ai 表示第
i
i
i 个询问所提供的参数。
令
x
x
x 满足
2
x
−
1
≥
a
i
2^x - 1 \ge a_i
2x−1≥ai,令
k
=
min
(
x
)
k = \min(x)
k=min(x)。
- 如果 2 k − 1 = a i 2^k - 1 = a_i 2k−1=ai,由于该情况数量较少打表即可。
- 答案 = 2 k − 1 = 2^k - 1 =2k−1。
下面来着重证明第二种情况:
令
b
i
=
(
2
k
−
1
)
b_i = (2^k - 1)
bi=(2k−1) ^
a
i
a_i
ai(显然
b
<
a
b < a
b<a),那么
gcd
(
a
i
x
o
r
b
i
,
a
i
a
n
d
b
i
)
=
2
k
−
1
\gcd(a_i xor~b_i, a_i and ~b_i) = 2^k - 1
gcd(aixor bi,aiand bi)=2k−1,证毕。