社区讨论
O(T log n) 做法 TLE 求助
P14664[KenOI 2025] 异或题参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mj7bhi75
- 此快照首次捕获于
- 2025/12/15 23:37 2 个月前
- 此快照最后确认于
- 2025/12/16 00:13 2 个月前
常数真的有这么大吗,不开 IO 优化就过不了,开了 IO 优化之后 800 ms 极限卡过
还是我写假了?
CPP#include <iostream>
#include <cstring>
#include <algorithm>
#define int long long
using namespace std;
const int N = 1e6 + 10;
int T, n;
int pows[35];
bool bits[35];
signed main() {
// ios::sync_with_stdio(false);
// cin.tie(nullptr);
pows[0] = 1;
for (int i = 1; i <= 33; i ++) pows[i] = pows[i - 1] * 2;
cin >> T;
while (T --) {
cin >> n;
int k = 0, t = n;
while (n) {
if (n & 1) bits[k ++] = true;
else bits[k ++] = false;
n >>= 1;
}
int sum = 0, b = -1;
for (int i = k - 1; i >= 0; i --) {
if (bits[i]) {
sum += pows[i];
if (b == -1) b = pows[i];
} else {
if (b + pows[i] <= t) sum += pows[i] * 2;
}
}
cout << sum << endl;
// for (int i = 0; i < k; i ++) {
// if (bits[i]) cout << 1 << ' ';
// else cout << 0 << ' ';
// }
// cout << endl;
}
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...