Tutorial: 其实看了好久才发现能用题干所给的那个矩阵拓展, 以每个
4
×
4
4\times 4
4×4的矩阵看成一块儿, 每个元素+16就能拓展出新的块儿, 就这样不停的拓展就能得到一个
n
×
n
n\times n
n×n的矩阵
#include<bits/stdc++.h>usingnamespace std;#define _rep(i, a, b) for (int i = (a); i <= (b); ++i)#define _rev(i, a, b) for (int i = (a); i >= (b); --i)#define _for(i, a, b) for (int i = (a); i < (b); ++i)#define _rof(i, a, b) for (int i = (a); i > (b); --i)#define oo 0x3f3f3f3f#define ll long long#define db double#define eps 1e-8#define bin(x) cout << bitset<10>(x) << endl;#define what_is(x) cerr << #x << " is " << x << endl;#define met(a, b) memset(a, b, sizeof(a))#define all(x) x.begin(), x.end()#define pii pair<int, int>intnxt(){int ret;scanf("%d",&ret);return ret;}int a[4][4]={8,9,1,13,3,12,7,5,0,2,4,11,6,10,15,14};int n;intthrons(int i,int j){return(i /4)* n + j /4;}signedmain(){
n =nxt();
n /=4;_for(i,0,4* n){_for(j,0,4* n){
cout <<throns(i, j)*16+ a[i %4][j %4]<<" ";}
cout << endl;}}