Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33786 | 沈仲恩 | 【S】T1 | C++ | 运行超时 | 50 | 1000 MS | 6400 KB | 1491 | 2024-10-22 15:23:06 |
//测试赛时/140评测机差异。期望50。 #include <bits/stdc++.h> #define int long long using namespace std; // f[i][01][01] int f[65][2][2]; set <int> st; signed main() { //freopen("or.in", "r", stdin); //freopen("or.out", "w", stdout); int _; scanf("%lld", &_); while (_--) { int l, r; scanf("%lld %lld", &l, &r); st.clear(); for (int i = l; i <= r; i++) for (int j = i; j <= r; j++) st.insert(i | j); printf("%ld\n", st.size()); // int cnt = __lg(r), cnl = __lg(l); // // f[cnt + 1][0][0] = 1; // for (int i = cnt; i >= 0; i--) // { // f[i][0][0] = f[i + 1][0][0] + f[i + 1][0][1] + f[i + 1][1][0] + f[i + 1][1][1]; // f[i][0][1] = f[i + 1][0][0] + f[i + 1][0][1] + f[i + 1][1][0] + f[i + 1][1][1]; // f[i][1][0] = f[i + 1][0][0] + f[i + 1][0][1] + f[i + 1][1][0] + f[i + 1][1][1]; // f[i][1][1] = f[i + 1][0][0] + f[i + 1][0][1] + f[i + 1][1][0] + f[i + 1][1][1]; // if ((l & (1 << i)) && (r & (1 << i))) // f[i][1][1]++; // else if ((l & (1 << i))) // f[i][1][0]++; // else if (r & (1 << i)) // f[i][0][1]++; // else // f[i][0][0]++; // } // printf("%lld", f[0][0][0]); } return 0; } /* 111 1001 1000 1111 1221 3223 */