这道题比较像循环赛日程表
代码:
#include<bits/stdc++.h>
using namespace std;
#define MAXN 1524
int arr[MAXN][MAXN];
void f(int x,int y,int k)
{
if(k == 0)
{
return ;
}
for(int i=x; i<x+k; i++)
{
for(int j=y; j<y+k; j++)
{
arr[i][j] = 0;
}
}
f(x+k,y,k/2);
f(x,y+k,k/2);
f(x+k,y+k,k/2);
}
int main()
{
int n;
cin>>n;
n = 1<<n;
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
arr[i][j] = 1;
}
}
f(0,0,n/2);
bool f = false;
for(int i=0; i<n; i++)
{
f = false;
for(int j=0; j<n; j++)
{
if(f)
cout<<" ";
cout<<arr[i][j];
f = true;
}
cout<<endl;
}
return 0;
}