B. 光之屏障
预处理一下,我们知道 int 范围也就 ,然后把所有是 ( 为整数,且 )的数全部扔到  里去。那么这个  大概长这样 。
对于每一次询问,我们直接找 里 且 的数就行了。
#include <bits/stdc++.h>
using namespace std;
vector <int> v;
int main() {
  int t;
  cin >> t;
  int a, b, q = 1;
  for (int i = 1; i <= 32; ++i) {
    v.push_back(q);
    q *= 2;
  }
  while (t--) {
    bool f = 0;
    cin >> a >> b;
    for (int i = 0; i < v.size(); ++i) {
      if (v[i] >= a && v[i] <= b) {
        cout << v[i] << endl;
        f = 1;
        break;
      }
    }
    if (!f) cout << "-1\n";
  }
}

 京公网安备 11010502036488号
京公网安备 11010502036488号