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