题目链接:http://codeforces.com/contest/1208/problem/C
思路:1.把n*n的方格分成(n/4)*(n/4)个4*4的小方格
2.保证每个4*4的小方格每行和每列xor值为0
发现如下可以符合2条件
在每个4*4的方格按上述规律填好即可
#include<bits/stdc++.h>
using namespace std;
int A[1100][1100];
int cut=0;
void fill_in(int x,int y)
{
for(int i=x;i<x+4;i++)
{
for(int j=y;j<y+4;j++)
{
A[i][j]=cut++;
}
}
}
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i+=4)
{
for(int j=0;j<n;j+=4)
{
fill_in(i,j);
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
printf("%d ",A[i][j]);
printf("\n");
}
}