Pagini recente » Istoria paginii utilizator/sebby_cielutz | Istoria paginii utilizator/dandavid1808 | Profil WeRRa99 | Starea natiunii 2016 - Bun venit la scoala | Diferente pentru summer-challenge-2007/solutii/runda-3 intre reviziile 5 si 6
Nu exista diferente intre titluri.
Diferente intre continut:
Problema se rezolva prin metoda backtracking. Se iau toate posibilitatile de a aseza damele pe tabla de sah astfel incat oricare doua dame sa nu se atace. Ca sa intre in timp trebuiesc facute unele optimizari cum ar fi:
* atunci cand punem o dama marcam linia, coloana, prima diagonala si a doua dioagonala pe care este dama ca fiind ocupate pentru ca mai tarziu sa stim ca pe acestea nu putem pune alta dama (optimizam verificarea pentru a vedea daca putem sa punem o dama pe o anumita pozitie sau nu)
* tinem minte numarul minim de dame necesar gasit pana acum si in backtracking daca cumva trecem de acel numar cand cautam o solutie nu mai continuam pentru ca nu are sens (sigur am gasit o solutie cu numar de dame mai mic inainte) (initial acest numar este infinit)
* dupa ce am gasit o solutie cu un anumit numar de dame verificam daca fiecare patratel este atacat de o dama in O(1) folosindu-ne de informatiile folosite la primul subpunct, si anume: un patratel (x, y) este atacat de o dama daca cel putin una din linia, coloana, prima diagonala, a doua diagonala sunt marcate ca fiind o dama pe ele.
* dupa ce am gasit o solutie cu un anumit numar de dame verificam daca fiecare patratel este atacat de o dama in O(1) folosindu-ne de informatiile stiute de la primul subpunct, si anume: un patratel (x, y) este atacat de o dama daca cel putin una din linia, coloana, prima diagonala, a doua diagonala sunt marcate ca fiind o dama pe ele.
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.