提交时间:2024-10-23 09:30:42

运行 ID: 33827

//100 #include<bits/stdc++.h> using namespace std; #define int long long int l,r; void slv(){ cin>>l>>r; // cout<<l<<" "<<r<<endl; if(l==r){ cout<<1<<endl; return; } int mid=0; for(int i=62;i>=0;i--) if((l>>i&1ll)!=(r>>i&1ll)){ mid=i; break; } int get; for(int i=mid-1;i>=0;i--){ // cout<<i<<" "<<(r>>i)<<endl; if(r>>i&1ll){ get=i+1; break; } } l&=(1ll<<mid+1)-1; r&=(1ll<<mid+1)-1; // cout<<mid<<" "<<get<<endl; int l1=l+(1ll<<mid),r1=(1ll<<mid+1)-1; int l2=(1ll<<mid),r2=(1ll<<mid)+(1ll<<get)-1; if(r2>=l1){ cout<<(1ll<<mid+1ll)-l<<endl; } else{ cout<<(1ll<<mid+1ll)-l1+r2-l+1<<endl; } } signed main(){ //freopen("or.in","r",stdin); //freopen("or.out","w",stdout); int T; cin>>T; while(T--) slv(); // } return 0; }