提交时间:2024-10-22 15:25:57

运行 ID: 33791

//60 //lst is O(Tnn) #include<bits/stdc++.h> using namespace std; #define int long long int l,r; set<int>s; void dfs(int p,int sum){ if(p>r){ if(sum) s.insert(sum); return; } dfs(p+1,sum|p); dfs(p+1,sum); } void slv(){ s.clear(); dfs(l,0); cout<<s.size()<<endl; } int ans[256][256]; int an=0; void slv1(){ int x=r; int cnt=0; while(x)x>>=1,cnt++; x=1; while(cnt)x<<=1,cnt--; x--; int ans=0; for(int i=l;i<=x;i++){ int sum=0; for(int j=l;j<=r;j++){ if((j|i)==i)sum|=j; } if(i==sum)ans++; } an=ans; } signed main(){ freopen("or.in","r",stdin); freopen("or.out","w",stdout); for(l=1;l<=255;l++){ for(r=l;r<=255;r++){ slv1(); ans[l][r]=an; } } int T; cin>>T; while(T--){ cin>>l>>r; if(r-l<=5) slv(); else cout<<ans[l][r]<<endl;; } cerr<<clock()*1.0/CLOCKS_PER_SEC<<"s\n"; return 0; }