Objectif: étant donné une matrice d'entiers positifs , sortir la plus petite matrice centrosymétrique qui contient (cette matrice peut également contenir des entiers non positifs).M
Une matrice centrosymétrique est une matrice carrée avec une symétrie de rotation d'ordre 2, c'est-à-dire qu'elle reste la même matrice après deux rotations. Par exemple, une matrice centrosymétrique a l'élément en haut à gauche identique à celui en bas à droite et l'élément au-dessus du centre identique à celui en dessous du centre. Une visualisation utile peut être trouvée ici .
Plus formellement, étant donné une matrice , produire une matrice carrée telle que est centrosymétrique et , et il n'y a pas d' autre matrice carrée telle que .N N M ⊆ N K dim K < dim N
B A ⊆ B A i , j B i + i ′ , j + j ′ ( i ′ , j ′ ) est un sous-ensemble de (notation: ) si et seulement si chaque valeur apparaît à l'index pour une paire d'entiers .
Remarque : certaines matrices ont plusieurs solutions (par exemple, [[3,3],[1,2]]
être résolues en tant que [[2,1,0],[3,3,3],[0,1,2]]
ou [[3,3,3],[1,2,1],[3,3,3]]
); vous devez générer au moins une des solutions valides.
Cas de test
input
example output
[[1, 2, 3],
[4, 5, 6]]
[[1, 2, 3, 0],
[4, 5, 6, 0],
[0, 6, 5, 4],
[0, 3, 2, 1]]
[[9]]
[[9]]
[[9, 10]]
[[9, 10],
[10, 9]]
[[100, 200, 300]]
[[100, 200, 300],
[ 0, 0, 0],
[300, 200, 100]]
[[1, 2, 3],
[4, 5, 4]]
[[1, 2, 3],
[4, 5, 4]
[3, 2, 1]]
[[1, 2, 3],
[5, 6, 5],
[3, 2, 1]]
[[1, 2, 3],
[5, 6, 5],
[3, 2, 1]]
[[4, 5, 4],
[1, 2, 3]]
[[3, 2, 1],
[4, 5, 4],
[1, 2, 3]]
[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 9, 9, 9, 9, 9, 9, 9],
[1, 1, 1, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 1]]
[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 9],
[1, 1, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[1, 1, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 1, 1, 1],
[9, 9, 9, 9, 9, 9, 9, 9, 9, 1, 1, 1],
[9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]