社区讨论

请问这个代码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 条回复,欢迎继续交流。

正在加载回复...