Menu
CoddyTech

N-Queens II

TrudneNawrotypython iconjava iconcpp iconc iconjs icon+10

Hetmańka na szachownicy atakuje każde pole w swoim wierszu, w swojej kolumnie i wzdłuż obu przekątnych, niezależnie od odległości. Otrzymujesz liczbę całkowitą n. Zwróć liczbę sposobów rozmieszczenia n hetmanek na szachownicy o wymiarach n × n, tak aby żadne dwie hetmanki się nie atakowały.

Dwa sposoby różnią się, gdy na jakimś polu w jednym z nich znajduje się hetmanka, a w drugim jest ono puste. Dlatego szachownica i jej odbicie lustrzane liczą się jako dwa sposoby, mimo że wyglądają podobnie.

Funkcja

totalNQueens(n: integer) → integer
ninteger
rozmiar planszy i liczba hetmanów
Zwracainteger
liczba sposobów rozmieszczenia hetmanów tak, aby żaden nie atakował innego

Ograniczenia

  • 1 ≤ n ≤ 12
  • Odpowiedź dla n = 12 wynosi 14,200, więc mieści się w 32-bitowej liczbie całkowitej.

Przykłady

Wejście
n = 4
Wyjście
2
Wyjaśnienie
Zapisując kolumnę hetmana w każdym wierszu od góry do dołu, otrzymujemy plansze 1, 3, 0, 2 i 2, 0, 3, 1. Każda z nich jest lustrzanym odbiciem drugiej i liczą się jako dwa rozwiązania. Każdy inny wybór umieszcza dwa hetmany w tej samej kolumnie lub na tej samej przekątnej.

lock icon+10 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Czy potrafisz policzyć tylko te plansze, które pozostają różne po obróceniu i odbiciu lustrzanym planszy? Dla n = 8 92 plansze dzielą się na 12 takich grup.

Zresetuj kod
def totalNQueens(n):
    # Napisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Wejście

n = 4

Oczekiwane

2