Menu
CoddyTech

N-Queens II

TrudneNawrotypython iconjava iconcpp iconc iconjs icon+10

Hetman atakuje każde pole w swoim wierszu, swojej kolumnie i na obu przekątnych, niezależnie od odległości. Dla danej liczby całkowitej n zwróć liczbę sposobów rozmieszczenia n hetmanów na planszy n × n tak, aby żadne dwa hetmany się nie atakowały.

Plansze różniące się na choćby jednym polu liczą się osobno, także ich lustrzane odbicia.

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 numery kolumn z hetmanami w kolejnych wierszach od góry do dołu, otrzymujemy plansze 1, 3, 0, 2 i 2, 0, 3, 1: są swoimi lustrzanymi odbiciami, ale liczymy je jako dwa rozwiązania. Każdy inny wybór umieszcza dwa hetmany w tej samej kolumnie lub na tej samej przekątnej.
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):
    # Wpisz kod tutaj

Test #1

Test #2

Argument

n = 4

Oczekiwany wynik

2