Subtask #4错求调
查看原帖
Subtask #4错求调
1279212
yym111楼主2025/7/3 17:02
#include <bits/stdc++.h>
using namespace std;
const int N = 1000010;
int n, k, a[N], c[(1<<20)];
int main() {
	cin>>n>>k; 
	for(int i=1; i<=n; ++i) cin>>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]);
	}
	cout<<ans;
	return 0;
}
2025/7/3 17:02
加载中...