求助! 在O(N)优化时遇到了一些问题
查看原帖
求助! 在O(N)优化时遇到了一些问题
1046242
Jiang_2010楼主2023/10/16 22:47

求助大佬!

如题,我是先用超时代码打表找规律地,结果一直输出不了正确答案 看了一下 我的new POS是对的 求助大佬!

代码如下:

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

// 打表找规律 

const int MAXN = 2e6 + 5;

int a[MAXN], ans[MAXN];

int POS[MAXN];

int main() {
	int n;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) {
		scanf("%d", &a[i]);
	}
	
	for (int i = 1; i <= n; i++) {
		if (i % 2 == 1) {
			// 相当于没有 xor 1 
		}
		else {
			a[i] ^= 1; 
		} 
	}
	for (int i = 1; i <= n; i++) {
		printf("%d ", a[i]);
	}
	cout << endl;
	
	for (int i = 1, j = n; i <= n; i++, j--) {
		if (i % 2 == 1) {
			ans[j] = a[i / 2 + 1];
//			POS[i / 2 + 1] = j;
		}
		else {
			ans[j] = a[n - i / 2 + 1];
//			POS[n-i / 2 + 1] = j;
		}
	}
	
	for (int i = 1; i <= n; i++) {
		printf("%d ", ans[i]);
	}
	cout << endl;
	
	for (int i = 1; i <= n; i++) {
		printf("%d ", POS[i]);
	}
	cout << endl;
	return 0;
}
2023/10/16 22:47
加载中...