首页 > 其他 > 详细

题解 CF1436B 【Prime Square】

时间:2020-10-25 11:09:39      阅读:28      评论:0      收藏:0      [点我收藏+]

题目大意

构造一个 \(n*n\) 的矩阵,满足里面每个数都不为质数,但每行每列之和为质数.

solution

刚拿到题被吓到了一下,以为要写爆搜,然后判断是不是满足条件.

但是这是B题,一定还有更快的方法,

注意到,

all numbers on the square are non-negative integers not exceeding \(10^5\);

只要非负?那么 \(0\) 也可以了。

一下子简单了,我们只要这样构造:

1 1 0 0 0
0 1 1 0 0
0 0 1 1 0
0 0 0 1 1
1 0 0 0 1

也就是当 \(i = j\) 或者 \(i = j+1\) 或者 \(i = n,j = 1\)\(a[i][j]\)\(1\),其他为 \(0\)

1,0 都不是质数,但每行每列之和为 \(2\) ,是质数。

于是就水完了这道题。

代码

快读、头文件自行脑补

int n;
int main (){
	int T; read(T);
	while(T--){
		read(n);
		for(int i = 1;i <= n;i++){
		    for(int j = 1;j <= n;j++)
			if(j == i+1||j == i||(j == 1&&i==n)) printf("1 ");
			else printf("0 ");
		    puts("");
		}
		printf("\n");
	}
	return 0;
}

题解 CF1436B 【Prime Square】

原文:https://www.cnblogs.com/werner-yin/p/solution-CF-1436B.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!