「EZEC-4」可乐 ,100分,测试点4,w了求调
查看原帖
「EZEC-4」可乐 ,100分,测试点4,w了求调
1398191
lhx970619楼主2024/7/25 17:55
#include <bits/stdc++.h>
using namespace std;

const int N = 1000010;
int n, k, a[N], c[(1 << 20)];
int main() {
	scanf("%d%d", &n, &k);
	for (int i = 1; i <= n; ++i) scanf("%d", a + i);
	for (int i = 1; i <= n; ++i) {
		int sum = 0;
		for (int j = 20; j >= 0; --j) {
			if ((k >> j) & 1) {
				if ((a[i] >> j) & 1) {
					c[sum + (1 << j)]++;
					c[sum + (1 << (j + 1))]--;
				}
				else {
					c[sum]++;
					c[sum + (1 << j)]--;
					sum += 1 << j;
				}
			}
			else {
				sum = sum + ((a[i] >> j & 1) << j);
			}
		}
	}
	int ans = c[0];
	for (int i = 1; i < (1 << 20); ++i) {
		c[i] += c[i - 1];
		ans = max(ans, c[i]);
	}
	printf("%d", ans);
	return 0;
}```

感谢大佬

2024/7/25 17:55
加载中...