Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33827 | 22fhq | 【S】T1 | C++ | 运行超时 | 60 | 1000 MS | 260 KB | 1000 | 2024-10-23 09:30:42 |
//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; }