Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) (异或+规律)

题目链接
在这里插入图片描述
题意:要你用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的倍数,那么我们就按4
4这样的大小一个个构造。
那么如果没发现这个规律呢?没发现的话一切都是扯蛋。。。

#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":" ");
 } 
发布了144 篇原创文章 · 获赞 0 · 访问量 4935

猜你喜欢

转载自blog.csdn.net/qq_42479630/article/details/104524659