題目ios
大意:構造一個n行n列的矩陣,使得每一行,每一列的異或和都相等,n是4的倍數。spa
先看4*4的矩陣,咱們很容易構造出符合要求的矩陣,好比code
0 1 2 3blog
4 5 6 7get
8 9 10 11 string
12 13 14 15io
這個矩陣每行每列的異或和都爲0class
對於一個n*n的矩陣,咱們能夠寫成多個4*4的矩陣,爲了保證數字不重複,能夠對於其餘的小矩陣都加上16,32等等test
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int n; int main(){ scanf("%d",&n); int m=n/4; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ int now=((i-1)/4*m+(j-1)/4)*16; int hang=i%4,lie=j%4; if(hang==0)hang=4; if(lie==0)lie=4; printf("%d ",(hang-1)*4+lie-1+now); } puts(""); } return 0; }