预处理大样例过不了求助!悬关
  • 板块P9227 异或积
  • 楼主rainygame
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/4/24 18:25
  • 上次更新2023/10/23 17:38:47
查看原帖
预处理大样例过不了求助!悬关
804607
rainygame楼主2023/4/24 18:25

虽然有点花里胡哨,但是:

#include <bits/stdc++.h>
using namespace std;
#define MAXN 100002

int n, t;
long long k;
unsigned int a[MAXN], b[MAXN], c[MAXN];

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	
	cin >> t;
	
	while (t--){
		cin >> n >> k;
		for (int i=1; i<=n; i++) cin >> a[i];
		
		if ((n & 1) || (k & 1)){
			for (int i=1; i<=n; i++) b[i] = b[i-1] ^ a[i];
			for (int i=n; i>=1; i--) c[i] = c[i+1] ^ a[i];
			for (int i=1; i<=n; i++) cout << (b[i-1] ^ c[i+1]) << ' ';
		}else{
			for (int i=1; i<=n; i++) cout << a[i] << ' ';
		}
		cout << '\n';
	}
	
	return 0;
}

其实就是预处理出 bi=⨁j=1iajb_i = \bigoplus \limits_{j = 1}^{i}a_j 和 ci=⨁j=inajc_i = \bigoplus \limits_{j = i}^{n}a_j。但是不知道为什么错了

2023/4/24 18:25
加载中...