【牛客刷题】每日一练——判断双对称方阵

简介: 【牛客刷题】每日一练——判断双对称方阵

ello,点进来的小伙伴们,你们好呐!

系列专栏:【牛客刷题】

作者简介:一名双非本科的在读大三小白,我很平凡,学会努力!

给大家推荐一个超级好用的刷题平台——牛客网!

一、判断双对称方阵  

对于一个n阶方阵,请判断该方阵是否双对称,即既左右对称又上下对称。若是则输出“yes”,否则输出“no”。例如,样例中,以第2列为界则左右对称,以第2行为界则上下对称,因此输出“yes”。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组数据的第一行输入方阵的阶n(2≤n≤50),接下来输入n行,每行n个整数,表示方阵中的元素。

输出格式:

对于每组测试数据,若该方阵双对称,则输出“yes”,否则输出“no”。注意,引号不必输出。

输入样例:

   2

   3

   1 2 1

   3 5 3

   1 4 1

   3

   1 2 1

   3 5 3

   1 2 1

输出样例:

   no

   yes

解题思路:我们发现题目要求我们的矩阵必须是上下对称 并且 左右也对称 ,那么我们可以想到二维数组遍历的方法,分别比较首行 末行 首列 末列,然后通过循环比较第二行和n-2行 ,第二列和 m-2列,依次类推,设立两个flag 最后通过flag的数值来判断输出yes还是no。

   #include<stdio.h>

   int main() {

       int a[100][100],i,j,k,m,n;

       scanf("%d",&m);

       for(i=0; i<m; i++) {

           scanf("%d",&n);

           for(j=0; j<n; j++)

               for(k=0; k<n; k++)

                   scanf("%d",&a[j][k]);

       int flag=0;

       int flag2=0;

           for(j=0; j<n/2; j++) {

               for(k=0; k<n; k++)

                   if(a[j][k]!=a[n-1-j][k]) {

                       flag=1;

                       break;

                   }

               if(flag==1) {

   

                   break;

               }

           }

           for(j=0; j<n; j++)

               {

               for(k=0; k<n/2; k++)

                   if(a[j][k]!=a[j][n-1-k]) {

                       flag2=1;

                       break;

                   }

           if(flag2==1){

              break;  

           }

       }

           if(flag!=1  &&  flag2!=1){

                printf("yes\n");

           }

           else{

               printf("no\n");

           }

           flag=0;

           flag2=0;

           }

       return 0;

   }

相关文章
|
6月前
|
存储 算法 索引
力扣经典150题第四十三题:两数之和
力扣经典150题第四十三题:两数之和
31 1
|
7月前
|
C语言
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
[算法刷题题解笔记] 洛谷 P1011 [NOIP1998 提高组] 车站 [数学|斐波那契|推导]
[算法刷题题解笔记] 洛谷 P1011 [NOIP1998 提高组] 车站 [数学|斐波那契|推导]
|
7月前
|
机器学习/深度学习
蓝桥杯-2/14天-完全平方数【另类思路】
蓝桥杯-2/14天-完全平方数【另类思路】
|
Python
牛客刷题之数学基础-约数
牛客刷题之数学基础-约数
54 0
|
算法 Java 测试技术
LeetCode 周赛上分之旅 #46 经典二分答案与质因数分解
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
69 0
LeetCode 周赛上分之旅 #46 经典二分答案与质因数分解
[算法刷题题解笔记] 洛谷 P1003 [NOIP2011 提高组] 铺地毯 [枚举]
[算法刷题题解笔记] 洛谷 P1003 [NOIP2011 提高组] 铺地毯 [枚举]
|
存储 算法 C++
【每日算法Day 81】面试经典题:关于丑数,你真的理解为什么这么算吗?
【每日算法Day 81】面试经典题:关于丑数,你真的理解为什么这么算吗?
|
算法 C++
【每日算法Day 70】图解算法:小学生都会的数块数问题,你会吗?
【每日算法Day 70】图解算法:小学生都会的数块数问题,你会吗?
102 0
|
算法 C++ Python
【每日算法Day 92】经典面试题:编辑距离
【每日算法Day 92】经典面试题:编辑距离