https://www.luogu.com.cn/problem/P1259
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <sstream>
#include <algorithm>
#include <cstring>
#include <vector>
using namespace std;
long long qmi(int m, int k)
{
int res = 1, t = m;
while (k)
{
if (k&1) res = res * t;
t = t * t;
k >>= 1;
}
return res;
}
int read(){
int x = 0,f = 1;
char c = getchar();
while (c<'0'||c>'9') {
if (c=='-') {
f = -1;
}
c = getchar();
}
while (c>='0'&&c<='9') {
x = x*10+c-'0';
c = getchar();
}
return x*f;
}
int n,s;
char chess[101];
void Reflect_(){//输出现在存储的chess数组
for(int i=1 ; i<=2*n+2 ;i++){
cout<<chess[i];
}
cout<<endl;
}
void Initial(int n){//初始化
s = 2*n + 1;
for(int i=1;i<=n;i++){
chess[i]='o';
}
for(int i=n+1;i<=2*n;i++){
chess[i]='*';
}
for(int i = s;i<=2*n+2;i++){
chess[i]='-';
}
Reflect_();
}
void Fdoo(int k){//使得k位与s位交换
for(int i = 0;i <= 1;i++){
chess[s+i] = chess[k+i];
chess[k+i] = '-';
}
s = k;
Reflect_();
}
void Sdoo(int n){
if(n==4){
Fdoo(4);
Fdoo(8);
Fdoo(2);
Fdoo(7);
Fdoo(1);
} else {
Fdoo(n);
Fdoo(2*n-1);
Sdoo(n-1);
}
}
int main()
{
cin>>n;
Initial(n);//初始化
Sdoo(n);
}
/*
7
============
ooooooo*******--
oooooo--******o*
oooooo******--o*
ooooo--*****o*o*
ooooo*****--o*o*
oooo--****o*o*o*
oooo****--o*o*o*
ooo--***o*o*o*o*
ooo*o**--*o*o*o*
o--*o**oo*o*o*o*
o*o*o*--o*o*o*o*
--o*o*o*o*o*o*o*
*/
网友评论