[PTA] Julgando Matriz Quadrada Bisimétrica

Por favor, adicione a descrição da imagem
Cartão de visita pessoal:

blogueiro: Alcoólicos ᝰ.
Perfil pessoal: Delicie-se com o vinho e lute por um futuro com uma bebida.
coluna: Exercícios e análise de PTA
introduzir: Gravei as questões práticas do blogueiro em pta

Por favor, adicione a descrição da imagem

prefácio

1. Introdução

A "plataforma de ensino auxiliar experimental de programação PTA" é uma plataforma de ensino auxiliar para cursos de programação liderada pela Universidade de Zhejiang, gerenciada e operada pela Hangzhou Baiteng Education Technology Co., Ltd., e construída em conjunto por professores em faculdades e universidades em todo o país. Atualmente, 538 faculdades e universidades em todo o país participaram, e 3.152 professores construíram juntos 66.095 tópicos de alta qualidade, e o número de alunos registrados chegou a 1,36 milhão; existem 14 conjuntos de tópicos fixos (abrangendo linguagem C, linguagem JAVA, linguagem Python, estrutura de dados, sistema de banco de dados) e China University Computer Competition Question Bank) e 55 conjuntos de tópicos de cursos profissionais (abrangendo computador, eletrônica, literatura, língua estrangeira e certificação Huawei). Existem 10 tipos de perguntas, incluindo perguntas de verdadeiro e falso, perguntas de preenchimento de lacunas, perguntas de múltipla escolha, perguntas de múltipla escolha, perguntas de preenchimento de lacunas de programa, perguntas de função, perguntas de programação, perguntas subjetivas, questões de programação de vários arquivos e questões de programação SQL.

2. Vantagens

  • Apoie 200.000 pessoas online ao mesmo tempo
  • Suporta vários tipos de perguntas
  • Suporta uma variedade de modos de julgamento
  • Fornecer garantia abrangente para a qualidade do ensino
  • Sistema de resposta instantânea a perguntas

1. O tópico

Para uma matriz quadrada de ordem n, julgue se a matriz quadrada é duplamente simétrica, ou seja, é simétrica tanto à esquerda quanto à direita e para cima e para baixo. Em caso afirmativo, emita "sim", caso contrário, emita "não". Por exemplo, no exemplo, a simetria esquerda e direita é delimitada pela segunda coluna e a simetria superior e inferior é delimitada pela segunda linha, portanto, a saída é "sim".

Formato de entrada:
primeiro insira um inteiro positivo T, que representa o número de grupos de dados de teste e, em seguida, T grupos de dados de teste. A primeira linha de cada conjunto de dados é inserida com a ordem n da matriz quadrada (2≤n≤50), e a próxima entrada são n linhas, cada linha contém n inteiros, representando os elementos da matriz quadrada.

Formato de saída:
Para cada conjunto de dados de teste, se a matriz quadrada for duplamente simétrica, emita "sim", caso contrário, emita "não". Observe que as aspas não precisam ser exibidas.

Exemplo de entrada:

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

Saída de amostra:

não
sim

Limite de comprimento de código 16 KB
Limite de tempo 400 ms
Limite de memória 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. Uma matriz simétrica refere-se a uma matriz com a diagonal principal como eixo de simetria, e cada elemento corresponde à mesma matriz. Em álgebra linear, uma matriz simétrica é uma matriz quadrada cuja transposta é igual a si mesma.
  2. O produto de duas matrizes simétricas é simétrico se e somente se a multiplicação das duas for comutativa. Duas multiplicações de matrizes simétricas reais são comutativas se e somente se seus autoespaços são os mesmos.
  3. Qualquer matriz quadrada X cujos elementos pertençam a um corpo com autovalores diferentes de 2 (como números reais) pode ser escrita como a soma de uma matriz simétrica e uma matriz obliquamente simétrica exatamente de uma maneira
  4. Uma matriz é simétrica e obliquamente simétrica se e somente se todos os elementos forem zero.

Acho que você gosta

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