[PTA] Evaluación de matriz cuadrada bisimétrica

Por favor agregue la descripción de la imagen
Tarjeta de visita personal:

bloguero: Alcohólicos ᝰ.
Perfil personal: Disfrute del vino y luche por un futuro con una bebida.
columna: Ejercicios y análisis de PTA
introducir: Grabó las preguntas de práctica del blogger en pta

Por favor agregue la descripción de la imagen

prefacio

1. Introducción

La "Plataforma de enseñanza auxiliar experimental de programación de la PTA" es una plataforma de enseñanza auxiliar para cursos de programación dirigida por la Universidad de Zhejiang, administrada y operada por Hangzhou Baiteng Education Technology Co., Ltd., y construida conjuntamente por profesores en colegios y universidades de todo el país. En la actualidad, han participado 538 colegios y universidades de todo el país, y 3.152 profesores han construido conjuntamente 66.095 temas de alta calidad, y el número de estudiantes registrados ha llegado a 1,36 millones; hay 14 conjuntos de temas fijos (que cubren lenguaje C, lenguaje JAVA, Lenguaje Python, estructura de datos, sistema de base de datos) y banco de preguntas de competencia informática de la Universidad de China) y 55 conjuntos de temas de cursos profesionales (que cubren informática, electrónica, literatura, idiomas extranjeros y certificación de Huawei). Hay 10 tipos de preguntas que incluyen preguntas verdaderas y falsas, preguntas para completar espacios en blanco, preguntas de opción múltiple, preguntas de opción múltiple, preguntas para completar espacios en blanco del programa, preguntas sobre funciones, preguntas sobre programación, preguntas subjetivas, preguntas de programación de archivos múltiples y preguntas de programación SQL.

2. Ventajas

  • Apoye a 200,000 personas en línea al mismo tiempo
  • Soporta múltiples tipos de preguntas
  • Admite una variedad de modos de juicio
  • Proporcionar una garantía integral para la calidad de la enseñanza.
  • Sistema de respuesta instantánea a preguntas.

1. El tema

Para una matriz cuadrada de orden n, juzgue si la matriz cuadrada es doblemente simétrica, es decir, es simétrica tanto a la izquierda como a la derecha y hacia arriba y hacia abajo. Si es así, emita "sí", de lo contrario, emita "no". Por ejemplo, en el ejemplo, la simetría izquierda y derecha está limitada por la segunda columna, y la simetría superior e inferior está limitada por la segunda fila, por lo que el resultado es "sí".

Formato de entrada:
primero ingrese un número entero positivo T, que representa el número de grupos de datos de prueba, y luego T grupos de datos de prueba. La primera fila de cada conjunto de datos se ingresa con el orden n de la matriz cuadrada (2≤n≤50), y la siguiente entrada es n filas, cada fila contiene n enteros, que representan los elementos en la matriz cuadrada.

Formato de salida:
para cada conjunto de datos de prueba, si la matriz cuadrada es doblemente simétrica, emita "sí", de lo contrario, emita "no". Tenga en cuenta que las comillas no tienen que salir.

Muestra de entrada:

2
3
1 2 1
3 5 3
1 4 1
3
1 2 1
3 5 3
1 2 1

Salida de muestra:

no
si

Código Límite de longitud 16 KB
Límite de tiempo 400 ms
Límite de memoria 64 MB

2. Código

import java.util.Scanner;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for (int k = 0; k < T; k++) {
    
    
            int n = sc.nextInt();
            if (n >= 2 && n <= 50){
    
    
                int[][] num = new int[n][n];
                for (int i = 0; i < n; i++) {
    
    
                    for (int j = 0; j < n; j++) {
    
    
                        num[i][j] = sc.nextInt();
                    }
                }
                boolean flag = true;
                //竖
                for (int i = 0; i < n; i++) {
    
    
                    for (int j = 0; j < n/2; j++) {
    
    
                        if (!(num[i][j] == num[i][n-j-1])){
    
    
                            flag = false;
                        }
                    }
                }
                //横
                for (int i = 0; i < n; i++) {
    
    
                    for (int j = 0; j < n/2; j++) {
    
    
                        if (!(num[j][i] == num[n-j-1][i])){
    
    
                            flag = false;
                        }
                    }
                }
                if (flag){
    
    
                    System.out.println("yes");
                }else {
    
    
                    System.out.println("no");
                }
            }
        }
    }
}

3. Notas

  1. Una matriz simétrica se refiere a una matriz con la diagonal principal como eje de simetría, y cada elemento corresponde a la misma matriz. En álgebra lineal, una matriz simétrica es una matriz cuadrada cuya transpuesta es igual a sí misma.
  2. El producto de dos matrices simétricas es simétrico si y solo si la multiplicación de las dos es conmutativa. Dos multiplicaciones de matrices simétricas reales son conmutativas si y solo si sus espacios propios son iguales.
  3. Cualquier matriz cuadrada X cuyos elementos pertenezcan a un campo con valores propios distintos de 2 (como los números reales) se puede escribir como la suma de una matriz simétrica y una matriz oblicuamente simétrica exactamente de una manera
  4. Una matriz es tanto simétrica como oblicuamente simétrica si y solo si todos los elementos son cero.

Supongo que te gusta

Origin blog.csdn.net/m0_65144570/article/details/127098762
Recomendado
Clasificación