http://codeforces.com/contest/1208/problem/C
题意:
构造一个矩阵,矩阵的每列和每行的异或和相同
解析:
n=4:
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
每行相对前一行,每个数+4,结果不变
没列相对前一列,每个数+1,结果不变
构造的矩阵是若干的4*4的矩阵合并结果
ac:
#include<bits/stdc++.h>
using namespace std;
int mm[1001][1001];
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
int k=((i-1)/4)*(n/4)+(j-1)/4;
int a=((i-1)%4)*4+(j-1)%4;
mm[i][j]=k*16+a;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<n;j++)
printf("%d ",mm[i][j]);
printf("%d\n",mm[i][n]);
}
retur