#include <stdio.h>
#define SIZE 128
typedef unsigned char uc;
uc tb[SIZE][SIZE];
int main() {
size_t wid;
size_t grp;
size_t pg;
size_t i;
size_t j;
size_t num;
size_t k;
scanf("%u" , &k);
for ( num = 1 ; k ; k-- )
num += num;
for ( i = 0 ; i < num ; i++ )
tb[i][0] = i + 1;
for ( wid = 1 , grp = 2 ; wid < num ; wid += wid , grp = wid + wid )
for ( pg = 0 ; pg < num - 1 ; pg += grp )
for ( i = pg ; i < pg + wid ; i++ )
for ( j = 0 ; j < wid ; j++ ) {
tb[i + wid][j + wid] = tb[i][j];
tb[i][j + wid] = tb[i + wid][j];
}
for ( i = 0 ; i < num ; i++ ) {
for ( j = 0 ; j < num ; j++ )
printf("%d " , tb[i][j]);
putchar('\n');
}
return 0;
}
循环赛日程表(分治)
最新推荐文章于 2024-03-06 15:06:21 发布