80分 MLE 帮帮孩子吧!
查看原帖
80分 MLE 帮帮孩子吧!
931492
xiaohuanxiong楼主2024/5/21 22:48
#include<bits/stdc++.h>
using namespace std;
int n; 
char ans[32769][32769]={};
int jw[17]={0,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768};
void dfs(int x)
{
	if (x==n)
	{
		for (int i=1;i<=jw[x];i++)
		{
			for (int j=x;j>=1;j--)
				cout<<ans[i][j];
			cout<<endl;
		}	
		return ;
	}	
	for (int i=jw[x]+1;i<=jw[x+1];i++)
		for (int j=1;j<=x;j++)
		{
			ans[i][j]=ans[2*jw[x]-i+1][j];
		}
	for (int i=1;i<=jw[x+1];i++)
	{
		if (i<=jw[x+1]/2)
			ans[i][x+1]='O';
		else
			ans[i][x+1]='X';
	}
	dfs(x+1);
}
int main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n;
	ans[1][1]='O';
	ans[2][1]='X';
	dfs(1);
	for (int i=1;i<=n;i++)
		cout<<'O';
	return 0;
}
2024/5/21 22:48
加载中...