社区讨论
请问这个代码1s能跑完 n <= 1e5 吗?
学术版参与者 5已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @mjxuu2el
- 此快照首次捕获于
- 2026/01/03 13:20 2 个月前
- 此快照最后确认于
- 2026/01/06 19:25 上个月
CPP
#include <bits/stdc++.h>
using namespace std;
// #pragma GCC optimize(2)
#define rep(i, x, y) for (int i = x; i <= y; i++)
#define per(i, x, y) for (int i = x; i >= y; i--)
#define ull unsigned long long
#define db double
#define sz(x) ((int)x.size())
#define inf (1 << 30)
#define pb push_back
typedef pair<int, int> PII;
constexpr int N = 5e5 + 7;
constexpr int P = 998244353;
constexpr int V = 1023, VV = 1024;
char buf[1 << 20], *p1 = buf, *p2 = buf;
#define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 20, stdin), p1 == p2) ? EOF : *p1++)
int read() {
int x = 0, f = 1;
char ch = getchar();
while (!isdigit(ch)) {if (ch == '-') f = -f; ch = getchar();}
while (isdigit(ch)) {x = x * 10 + ch - '0'; ch = getchar();}
return x * f;
}
void write(int x) {
if (x < 0) putchar('-'), x = -x;
if (x > 9) write(x / 10);
putchar(x % 10 + '0');
}
int n, a[N];
__inline void solve() {
n = read();
rep(i, 1, n) a[i] = read();
vector <bool> dp(VV);
dp[V] = 1;
dp[0] = 1;
for (register int i = 1; i <= n; ++i) {
for (register int j = V; j >= 0; --j) {
if (dp[j])
dp[j & a[i]] = 1;
}
}
for (register int i = 0; i <= V; ++i) {
if (!dp[i]) {
write(i), putchar('\n');
return;
}
}
write(1024), putchar('\n');
}
int main() {
int oT_To = read();
while (oT_To--) solve();
return 0;
}
回复
共 8 条回复,欢迎继续交流。
正在加载回复...