过了样例,0分求hack,急,玄关。
查看原帖
过了样例,0分求hack,急,玄关。
1025321
midsummer_zyl楼主2024/8/21 21:08
#include <bits/stdc++.h>
#define ll long long
#define pii pair <int, int>
using namespace std;
const int N = 2e5 + 10;
ll x[N], k, pre[N];
int main() {
//	freopen("xorbonacci.in", "r", stdin);
//	freopen("xorbonacci.out", "w", stdout);
	cin >> k;
	for (int i = 1; i <= k; ++i)
		cin >> x[i], x[k + 1] ^= x[i];
//	for (int i = 1; i <= k + 1; ++i)
//		cout << x[i] << " ";
//	cout << "\n";
	k ++;
	for (int i = 1; i <= k; ++i)
		pre[i] = pre[i - 1] ^ x[i];
	int q; cin >> q;
	while (q -- ) {
		ll l, r; cin >> l >> r;
		ll lsum = 0 ;
		if (l % k != 0)
			lsum = (pre[k] ^ pre[l % k - 1]);
		ll rsum = 0;
		if (r % k != 0)
			rsum = (pre[r % k] ^ pre[0]);
		r -= r % k;
		l -= l % k + k;
		ll cnt = (r - l + 1) / k;
//		cout << lsum << " " << rsum << " " << cnt << "\n";
		ll ans = cnt * (pre[k] ^ pre[0]) + lsum + rsum;
		cout << ans << "\n";
	}
	return 0;
}
2024/8/21 21:08
加载中...