zoukankan      html  css  js  c++  java
  • 题解 CF1436B 【Prime Square】

    CF1436B
    对于一个 (n) 阶方阵,我们发现:

    当 $ n$ 为偶数时,对角线元素为 (1) ,其他元素为 (0) 时,可以保证每一行每一列的和都是 (2),满足题意。

    (n) 为奇数时,则需要在以上构造的基础上在中心元素所在的行列填一个 (1),使得中心元素所在的行列和为 (2),而加入新元素的行列的和为 (2)(3),仍然满足题意。

    (n=4left[ egin{matrix} 1 & 0 & 0 & 1\ 0 & 1 & 1 & 0 \ 0 & 1 & 1 & 0 \ 1 & 0 & 0 & 1end{matrix} ight])

    (n=5left[ egin{matrix} 1 & 0 &1 & 0 & 1\ 0 & 1 & 0 & 1 & 0 \ 1 & 0 & 1 & 0 & 0 \ 0 & 1 & 0 & 1 & 0\ 1 & 0 & 0 & 0 & 1 \end{matrix} ight])

    //AC代码
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #define N 101
    using namespace std;
    int T,a[N][N],n;
    int main()
    {
    	scanf("%d",&T);
    	while(T--){
    		memset(a,0,sizeof a);//别忘了清数组
    		scanf("%d",&n);
    		if(n==2){
    			printf("%d %d
    %d %d
    ",1,1,1,1); 
    			continue;
    		}
    		for(int i=1;i<=n;++i)a[i][i]=1;
    		for(int i=n,j=1;i>=1,j<=n;--i,++j)a[i][j]=1;
    		if(n%2==1)a[1][n/2+1]=1,a[n/2+1][1]=1;
    		for(int i=1;i<=n;++i){
    			for(int j=1;j<=n;++j)printf("%d ",a[i][j]);
    			printf("
    ");
    		}
    		
    	}
    	return 0;
    }
    
  • 相关阅读:
    JVM01---简介
    SpringBoot-01创建项目,实例
    git的三种提交方式(目前两种)
    Spring-事务
    JDK及CGLIB动态代理-AOP4种增强
    Spring-静态代理
    Spring-Aop
    初识jvm-1.Java类的加载机制
    java公开课-06-实用类
    java公开课-05-集合及Socket网络编程(简介)
  • 原文地址:https://www.cnblogs.com/Wuhen-GSL/p/13872290.html
Copyright © 2011-2022 走看看