#include <iostream>
#include <stdio.h>
#include <cmath>
#include <algorithm>
using namespace std;
int a[105][105];
int table(int m)
{
if(m>1)
{
table(m/2);
for(int i=1;i<=m;i++)
for(int j=1;j<=m;j++)
{
a[m+i][j]=a[i][j]+m;
a[i][m+j]=a[i][j]+m;
a[i+m][j+m]=a[i][j];
}
}
else
{
a[1][1]=1;
a[1][2]=2;
a[2][1]=2;
a[2][2]=1;
}
}
int main()
{
int n;
cin>>n;
n=(int)pow(2,n);
table(n);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
循环赛日程表(分治)
最新推荐文章于 2020-07-27 11:59:47 发布