const long long MAXN=10000+5;
char tem[MAXN];
int cnt[MAXN];
typedef vector<int> vci; typedef pair<int, int> pii;
typedef vector<pair<int, int> > vpii;
LL bits[70];
int main()
{
bits[0]=1;
for(int i=1;i<=62;i++) bits[i]=bits[i-1]<<1;
int n;
scanf("%d",&n);
LL a,b;
while(n--)
{
scanf("%I64d%I64d",&a,&b);
if(a==b){printf("%I64d\n",a);continue;}
LL mx=0;LL ans=b;
for(int i=62;i>=0;i--)
{
LL tmp=bits[i];
if(b&tmp)
{
mx+=tmp;
if(mx-1>=a) ans=max(ans,(mx|(mx-1)));
}
}
printf("%I64d\n",max(mx,ans));
}
return 0;
}
HDU 5969
最新推荐文章于 2021-07-21 11:24:28 发布