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";
}
}