此篇属于比赛题解集合(CF && AcWing Race)
链接
欢迎留言讨论
C:传送门
题解
CODE
#include<iostream>
using namespace std;
#define int long long
int T, n, m;
const int P = 998244353;
void solve()
{
int l,r;
int size = 1;
int cnt = 1;
cin >> l >> r;
while(l * (1 << size) <= r) size ++;
size -= 1;
int factor = 1 << size;
if(r / factor > l) cnt += r/factor - l;
if(size > 0){ // 否则出现re 除0错误
factor = factor /2 * 3;
if(r / factor >= l) cnt = (cnt + (r/factor - l + 1) * size)%P;
cout << (size + 1) << ' ' << cnt << endl;
}
}
signed main() {
cin >> T;
while (T--)
solve();
return 0;
}