题目传送
这道题比较像循环赛日程表
代码:
#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;
}