题目链接
题意:要你用0到n^2-1的数构造一个nn的矩阵,同时矩阵的每一行每一列的异或值要相同。
思路:
我们发现对于·n为4的时候存在这样满足条件的矩阵:
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
又由于n的4的倍数,那么我们就按44这样的大小一个个构造。
那么如果没发现这个规律呢?没发现的话一切都是扯蛋。。。
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1e3+1;
int n,ans[maxn][maxn],cnt;
void check(int x,int y)
{
for(int i=x;i<x+4;++i)
for(int j=y;j<y+4;++j)
ans[i][j]=cnt++;
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i+=4)
for(int j=0;j<n;j+=4)
check(i,j);
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
printf("%d%s",ans[i][j],j==n-1?"\n":" ");
}