社区讨论

贪心做法 CCF 75 分

P14359[CSP-J 2025] 异或和参与者 3已保存回复 11

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
11 条
当前快照
1 份
快照标识符
@mhpi34ia
此快照首次捕获于
2025/11/08 07:42
3 个月前
此快照最后确认于
2025/11/08 07:52
3 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
#define dbug(x) (void)(cerr << #x << " = " << x << endl)

const int N = 50 * 10086;
ll a[N], sum[N];
ll n,k;

inline bool check(ll l ,ll r){
	ll temp = sum[r] ^ sum[l - 1];
	if(temp == k) return 1;
	return 0;
}

int main(){
	freopen("xor.in" , "r" , stdin);
	freopen("xor.out", "w" , stdout);
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);


	cin >> n >> k;
	for(ll i = 1;i <= n;i++){
		cin >> a[i];
		sum[i] = sum[i-1] ^ a[i];
	}
	ll pos = 0 , cnt = 0;
	for(ll r = 1;r <= n;r++){
		for(ll l = pos + 1;l <= r;l++){
			if(check(l , r)){
				//cout << l << " " << r << endl;
				pos = r;
				cnt++;
				break;
			}
		}
	}

	cout << cnt;

	return 0;
}
考场代码,在 CCF 得到 75 pts,而洛谷可过。

回复

11 条回复,欢迎继续交流。

正在加载回复...