P9741 「KDOI-06-J」翻转与反转 题解
看了一眼题解好像没一个跟我一样的(
先考虑第
再考虑第
发现规律,当
总复杂度
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e6 + 5;
int n, a[N], f[N];
signed main() {
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin>>n;
for(int i = 1; i <= n; i++) cin>>a[i];
for(int i = 1; i <= n; i++)
if((n - i + 1) % 2) a[i] = !a[i]; // 按值翻转
if(n % 2) { // n 为奇数
for(int i = n; i >= 1; i -= 2) cout<<a[i]<<" ";
for(int i = 2; i <= n - 1; i += 2) cout<<a[i]<<" ";
} else { // n 为偶数
for(int i = n; i >= 2; i -= 2) cout<<a[i]<<" ";
for(int i = 1; i <= n - 1; i += 2) cout<<a[i]<<" ";
}
return 0;
}