[p1] Ilość ustawień nie-szachujących się hetmanów (1)
Data zakończenia: 2024-10-23 15:40
Języki:
cpp
Limit czasu: 1.0 s
Limit pamięci: 100 MB
Cel
Zadanie na użycie funkcji rekurencyjnej.
Problem
Niniejsze zadanie jest rozwiązaniem problemu znalezienia takiego ustawienia 8 hetmanów na (standardowej) szachownicy, aby żadne dwa z nich się nie szachowały. Innymi słowy: takiego ustawienia 8 figur, aby żadne dwie figury nie stały w tym samym rzędzie, w tej samej kolumnie lub na tej samej przekątnej.
Jest to dobrze znany problem. Poniższy układ figur jest jednym z rozwiązań.
W ramach niniejszego zadania należy
Wskazówki: sugeruję:
Zadanie na użycie funkcji rekurencyjnej.
Problem
Niniejsze zadanie jest rozwiązaniem problemu znalezienia takiego ustawienia 8 hetmanów na (standardowej) szachownicy, aby żadne dwa z nich się nie szachowały. Innymi słowy: takiego ustawienia 8 figur, aby żadne dwie figury nie stały w tym samym rzędzie, w tej samej kolumnie lub na tej samej przekątnej.
Jest to dobrze znany problem. Poniższy układ figur jest jednym z rozwiązań.
* | |||||||
* | |||||||
* | |||||||
* | |||||||
* | |||||||
* | |||||||
* | |||||||
* |
- wyznaczyć liczbę takich ustawień,
- wypisać jedno z takich ustawień.
- dla łańcucha "liczba" liczbę wspomnianych ustawień,
- dla łańcucha "ustawienie" ośmio znakowy ciąg znaków składający się z liter "ABCDEFGH" wskazujący w których kolumnach należy umieszczać kolumny z kolejnych rzędów; łańcuch ten powinien być minimalny w porządku leksykograficznym. (W porządku leksykograficznym z łańcuchów AFHCGDBE i AGDFHBEC minimalnym byłby pierwszy z nich (podkreślam: minimalnym tylko z tych dwóch rozwiązań).
Wskazówki: sugeruję:
- utworzyć globalne tablice dla przechowywania informacji o zajętych
- kolumnach (8-elementową),
- przekątnych (dwie 15-elementowe);
- utworzyć funkcję rekurencyjną, w której dokonywana będzie próba ustawienia figury w kolejnym wierszu