P9741 「KDOI-06-J」翻转与反转 题解
fish_love_cat · · 题解
数学题。
可以发现,反转偶数次相当于没有反转,而
再来说说翻转。手推柿子可以发现位置
| 位置 |
|
|---|---|
好像并看不出什么,那再来看看
(把 看我多善良)
| 位置 |
位置 |
位置 |
|
|---|---|---|---|
(恍然大雾状)
可以发现:位置
虽然好像题目已经告诉我们是这样的。
还可以发现,设位置
而在此基础上,还可以从表里发现:
而题目告诉了我们要反转
综上,我们可以得出如下结论:要判断位置
最后可别只翻转忘了反转。
代码:
#include<bits/stdc++.h>
using namespace std;
int a[2000005];
int main(){int n;cin>>n;
for(int i=1,x;i<=n;i++)cin>>x,a[(n-i+1)/2+((n-i+1)%2?1:i)/*翻转*/]=((n-i+1)%2?!x:x)/*反转*/;
for(int i=1,x;i<=n;i++)cout<<a[i]<<' ';//一行输入一行输出搞定/jy
return 0;
}