Sunteți pe pagina 1din 4

Backtracking

Probleme cu solutii de lungime fixa : 1. 2. 3. 4. Generarea permutarilor Generarea aranjamentelor Generarea combinarilor In desert calatoresc in sir indian n camile. Pentru a sparge monotonia, beduinul hotaraste sa schimbe ordinea camilelor astfel incat nici o camila sa n-o mai vada in fata ei pe cea de pana atunci. Care sunt posibilitatile de aranjare? 5. Problema damelor 6. Problema turelor 7. Afisati toate cuvintele binare de lungime n. 8. Sa se afiseze toate cuvintele cu litere distincte de lungime 5 care se pot forma cu un alfabet de 12 litere date, stiind ca nu pot fi 2 vocale alaturate si orice cuvant sa contina cel putin o vocala.. 9. Plata unei sume folosind n tipuri de monede 10. Sa se genereze n perechi de paranteze care se inchid corect. 11. Sa se afiseze toate numerele cu cifre distincte, pentru care suma cifrelor este egala cu n. 12. Sa se afiseze toate numerele naturale de n cifre, care contin exact p cifre de 1. Ex : n=3, p=2 101, 110, 112, 113, 119, 121, 131 13. Sa se determine toate numerele de lungime n care sunt egale cu inversele lor 14. Problema drapelelor: sa se genereze toate drapelele tricolore care se pot forma folosind culorile: rosu, galben, albastru, verde, alb,mov, stiind ca in mijloc nu poate sa apara decat galben sau verde. 15. La o cofetarie se comercializeaza n sortimente de prajituri. Sa se determine toate variantele de a face pachete cu cate p prajituri diferite. Scrieti un program care permite citirea de la tastatura a celor n sortimente de prajituri si afiseaza variantele solutie precum si numarul acestora. 16. Sa se genereze toate numerele cu n cifre (n<10) care sunt supermultiple de p. Un numar este supermultiplu de p daca atat numarul cat si toate prefixele sale sunt multiplu de p. (Ex: 246 este supermultiplu de 2) 17. Sa se genereze toate numerele superprime cu n cifre distincte. Un numar este superprim daca atat el, cat si toate prefixele sale, sunt numare prime. 18. Fiind data o multime de n cuburi, fiecare cub fiind caracterizat de lungimea laturii si culoarea sa, sa se scrie un program care sa genereze toate turnurile care se pot forma cu p cuburi astfel incat doua cuburi vecine sa nu aiba aceeasi culoare iar deasupra unui cub sa nu se poata aseza un cub cu latura mai mare. 19. Scrieti un program care sa afiseze toate numerele de trei cifre, formate numai din cifre distincte si care sunt divizibile cu 4. 20. Un grup de copii are la dispozitie n cartonase cu n cuvinte disticte pentru jocul "cerc de cuvinte". In acest joc un copil trebuie sa spuna un cuvant care sa aiba primele doua litere identice cu ultimele doua ale cuvantului spus de predecesorul lui. fiind dat un cuvant de inceput pentru joc, afisati varianta cu cele mai multe cuvinte care se pot obtine cu ajutorul cartonaselor date. Observatie: un sir de cuvinte nu va contine un cuvant de mai multe ori. 21. Gigel are n cartonase (n<=10). Pe fiecare este scrisa o cifra de la 1 la 9. Utilizand doua tipuri de cartonase cu + si - vrea sa obtina rezultatul 2. Care sunt solutiile pentru n citit? 22. Fie n numere naturale. Sa se puna intre acestea operatorii + si astfel incat rezultatul expresiei sa fie egal cu val. 23. Fie n numere naturale. Sa se puna intre acestea operatorii + si astfel incat expresia sa fie la fiecare pas pozitiva. 24. Se considera n margele de m culori, nu neaparat distincte. Sa se determine toate posibilitatile de a insira margelele, formand un colier (circular) , astfel incat oricare doua margele alaturate sa aiba culori diferite. 25. O persoana a uitat numarul de telefon al unui prieten. Stie doar ca numarul are 6 cifre, incepe cu 4 si contine 3 zerouri dintre care doua sunt alaturate. Afisati toate variantele pe care trebuie sa le incerce pentru a vorbi cu prietenul sau. 26. La o masa rotunda sunt n persoane de diverse nationalitati, pentru fiecare persoana precizandu-se doua limbi straine cunoscute de ea. Se cere sa ajutati organizatorii mesei rotunde sa aranjeze persoanele astfel incat fiecare sa poata conversa atat cu cea din stanga cat si cu cea din dreapta. 27. Sa se genereze numerele mai mici decat n citit care trecute in baza 2 au in componenta lor exact p cifre de 1. 28. 6 din 49 29. Sa se genereze toate triunghiurile avand suma lungimilor laturilor egala cu n (n natural si lungimi naturale) 30. In Bacland exista n orase numerotate de la 1 la n, legate intre ele prin strazi cu sens unic. Un comis-voiajor trebuie sa porneasca din orasul 1, sa treaca exact o data prin fiecare din celelalte orase si sa se intoarca inapoi in orasul din acre a pornit. Fisierul Bacland.in contine pe prima linie numarul n al oraselor si numarul m al strazilor dintre orase, iar pe urmatoarele linii perechi (x,y) cu semnificatia exista strada de la x la y. Afisati in fisierul Bacland.out orasele, in ordinea in care sunt strabatute de catre comisvoiajor. 31. Domino: sa se afiseze toate lanturile ce se pot construi cu n piese de domino, stiind ca fiecare piesa de domino are inscrise in ordine doua numere din multimea {1,2,3,4,5,6}, iar doua piese se pot plasa in lant pe pozitii consecutive daca si numai daca primul numar inscris pe cea de-a doua piesa coincide cu cel de-al doilea numar de pe prima piesa. Ex : n=5 si piesele (2,1), (3,4), (4,2), (1,3), (4,4), se obtin solutiile : (1,3,5,2,4), (2,4,1,3,5), (3,5,2,4,1), (4,1,3,5,2), (5,2,4,1,3), (5,3,1,4,2), (1,4,2,5,3), (2,5,3,1,4), (3,1,4,2,5), (4,2,5,3,1) 32. Se citeste de la tastatura un numar n<15. Sa se genereze toate sirurile formate din numerele 1,2n astfel incat fiecare valoare sa apara exact o data intr-un sir, iar valorile pare sa se gaseasca totdeauna la locul lor (2 pe a doua pozitie din sir, 4 pe a patra etc) Ex : n=6 (1,2,3,4,5,6), (1,2,5,4,3,6), (3,2,1,4,5,6), (3,2,5,4,1,6) etc 33. Scrieti un program care afiseaza toate numerele de n cifre, care sunt egale cu de p ori produsul cifrelor Ex : pentru n=2 si k=6, singura solutie este 12

34. Se dau n bile albe si albastre. Fiecare bila are un numar de la 1 la n. Sa se afiseze toate posibilitatile de a selecta k bile din care cel putin a sa fie albe. Ex : a=2, k=3, n=5 bile de culori (alb, albastru, albastru, alb, alb), solutiile sunt : (1,2,4), (1,2,5), (1,3,4), (1,3,5), (1,4,5), (2,4,5), (3,4,5) 35. Fie o matrice nxn cu elemente numere naturale. Sa se calculeze toate sumele de n valori luate din linii si coloane diferite. Care este suma maxima ? Ex : n=3 si

1 3 5 A = 9 2 4 6 1 47
1+2+47, 1+4+1, 3+9+47, 3+4+6, 5+9+1, 5+2+6. Suma maxima este 59 (=3+9+47) 36. Se dau n persoane numerotate cu numere de la 1 la n, si p perechi de forma (i,j), cu semnificatia ca i este fiul lui j. Sa se afiseze cele n persoane in rand, astfel incat nici un fiu sa nu fie inaintea tatalui sau. Datele se citesc din fisier. Ex : n=10, p=9 si perechile (4,1), (4,5), (4,6), (1,8), (6 3), (6,7), (8,10), (8,9), (8,2), o solutie este (2,3,5,7,6,9,10,8,1,4), alta (2,5,9,10,8,3,7,1,6,4) etc. 37. Se citesc de la tastatura n cuvinte avand toate aceeasi lungimesi doua cuvinte c1 si c2 ambele de aceeasi lungime p. Sa se afiseze toate modalitatile de alegere a p cuvinte din cele n date astfel incat scriind cuvintele unul sub altul sa se poata forma pe prima coloana cuvantul c1, iar pe ultima coloana cuvantul c2. Exemplu: n=10, c1=pitic, c2=micut si cuvintele toc, are, pom, imi, par, cat, ele, tic, itu, cot, o solutie este: pom imi toc itu cot 38. Scrieti un program care afiseaza toate modalitatile care de a aranja elementele unui vector dat de numere intregi, astfel incat in sirul rezultat sa nu existe doua elemente alaturate negative. Exemplu: Pentru n=4 si vectorul (5,-3,-7,2) se obtin urmatoarele solutii: (5,-3,2,-7), (5,-7,2,-3), (-3,5,-7,2), (-3,5,2,-7), (3,2,5,-7), (-3,2,-7,5), (-7,5,2,-3), (-7,5,2,-3), (-7,2,5,-3), (-7,2,-3,5), (2,-3,5,-7), (2,-7,5,-3). 39. Se dau n numere intregi x1, x2, x3,, xn. Sa se determine o aranjare a acestor numere pe un cerc astfel incat suma produselor de cate doua numere vecine sa fie maxima. Exemplu: Pentru N=6, x=(1,2,3,4,5,6) si aranjarea 2-5-1-6-4-3-2 suma este s=2x5+5x1+1x6+6x4+4x3+3x2=63. Solutia problemei este insa in acest caz aranjarea 1-2-4-6-5-3-1 pentru care suma este 82. 40. La startul unui concurs sunt prezenti n concurenti. Sa se afiseze toate posibilitatile de a intra in concurs a concurentilor (concurentii intra in concurs pe rand) in ipoteza ca din motive mai mult sau mai putin obiective concurentul cu codul c1 trebuie sa intre in concurs intre primii trei iar concurentul c2 trebuie sa intre in concurs intre ultimii 2. Exemplu: Daca n=4, c1=2, c2=1 atunci solutiile sunt: (2,3,1,4), (2,3,4,1), (2,4,1,3), (2,4,3,1), (3,2,1,4), (3,2,4,1), (3,4,2,1), (4,2,1,3), (4,2,3,1), (4,3,2,1). 41. Un club de fotbal trebuie sa participe cu o echipa la un meci important din campionatul national. Cunoscand numarul de portari, atacanti, aparatori si mijlocasi pe care ii are clubul si stiind ca o echipa are exact un portar cel putin 2 atacanti, 2 mijlocasi si 2 aparatori, iar numarul total este 11 (nu au in vedere rezervele), sa se afiseze toate posibilitatile de a forma o echipa. Exemplu: Daca jucatorii disponibili sunt: portari A, C, L; atacanti B, F, G, K, M; mijlocasi D, E, J, N, O; aparatori H, I, P, Q; atunci doua solutii ale problemei sunt: (C, D, E, I, J, K, M, N, O, P, Q) si (D, F, G, I, J, K, L, N, O, P, Q). Probleme cu solutie de lungime variabila: 42. 43. 44. 45. 46. Problema partitiilor unui numar Submultimile unui numar Sa se descompuna un numar natural ca suma de numere prime (toate posibilitatile) Sa se determine suma tuturor numerelor cu cifre distincte. Cate astfel de numere sunt? Se dau n cifre distincte v1,v2...vn. Sa se gaseasca toate numerele nenule mai mici decat un numar A care se pot forma cu cifrele v1...vn 47. Sa se genereze toate numerele naturale ale caror cifre se gasesc printre cifrele lui x citit si au lungimea cel mult egala cu lungimea lui x. Cifrele se pot repeta. 48. Fie X=(X1,X2...Xn) un vector cu componente distincte. Sa se determine toate subsirurile (Xi1,Xi2...Xip) cu proprietatea ca Xi1<Xi2<...<Xip. Care este subsirul cu suma elementelor maxima? 49. Fie X=(X1,X2...Xn) un vector cu componente distincte. Sa se determine toate subsirurile (Xi1,Xi2...Xik), k>=2, cu proprietatea ca i1<i2<...<ik si Xi1<Xi2<...<Xik 50. Se considera o multime M de numere naturale cu n elemente. Scrieti un program care afiseaza toate submultimile multimii M ale caror elemente insumate sunt egale cu o valoare naturala S data. 51. NUMERE: Gigel este un mare pasionat al cifrelor. Orice moment liber i-l petrece jucndu-se cu numere. Jucndu-se astfel, ntr-o zi a scris pe hrtie 10 numere distincte de cte dou cifre i a observat c printre acestea exist dou submulimi disjuncte de sum egal. Desigur, Gigel a crezut c este o ntmplare i a scris alte 10 numere distincte de cte dou cifre i spre surpriza lui, dup un timp a gsit din nou dou submulimi disjuncte de sum egal.

Date fiind 10 numere distincte de cte dou cifre, determinai numrul de perechi de submulimi disjuncte de sum egal care se pot forma cu numere din cele date, precum i una dintre aceste perechi pentru care suma numerelor din fiecare dintre cele dou submulimi este maxim. Fiierul de intrare numere.in conine pe prima linie 10 numere naturale distincte separate prin cte un spaiu. x1 x2 ...x10 Fiierul de ieire numere.out conine trei linii. Pe prima linie se afl numrul de perechi de submulimi de sum egal, precum i suma maxim obinut, separate printr-un spaiu. Pe linia a doua se afl elementele primei submulimi, iar pe linia a treia se afl elementele celei de a doua submulimi, separate prin cte un spaiu. NrSol Smax NrSol numrul de perechi; Smax suma maxim x1 ... xk elementele primei submulimi y1 ... yp elementele celei de a doua submulimi Restricii i precizri 10 xi, yi 99, pentru 1 i 10 1 k, p 9 Ordinea submulimilor n perechi nu conteaz. Perechea de submulimi determinat nu este obligatoriu unic. Exemplu numere.in 60 49 86 78 23 97 69 71 32 10

numere.out 130 276 78 97 69 32 60 49 86 71 10

Semnificaie 130 de soluii; suma maxim este 276, s-au folosit 9 din cele 10 numere prima submulime are 4 elemente, a doua are 5 elemente

52. Sa se genereze toate sirurile strict crescatoare formate din numere naturale cu proprietatea ca primul element din sir este cel putin
egal cu n, iar ultimul cel mult egal cu n+k. Numerele n si k se citesc de la tastatura. Ex : n=7,k=2, (7), (7,8), (7,8,9), (7,9), (8), (8,9), (9) 53. Un avion al NATO care transporta ajutoare pe care utma sa le parasuteze refugiatilor de la granitele Afganistanului a suferit o defectiune neasteptata in timpul zborului. Pentru a nu se prabusi, trebuie sa renunte la o parte din incarcatura de la bord. Se stie ca greutatea maxima pe care o poate transporta in continuare este G. Se cunoaste greuttaea fiecarui pachet in parte, numarul total al pachetelor fiind n. De asemenea, numarul minim de pachete (pentru a putea contribui la supravietuirea populatiei din zona) este a, iar numarul maxim este b (din lipsa de spatiu, o parte din cala avionului nemaiputand fi utilizata din cauza defectiunii aparute). Care sunt posibilitatile existente ? Ex : n=10, G=9, a=3, b=4, g={1,2,3,4,5,6,7,8,9,10}, solutiile sunt : (2,3,4), (1,3,5), (1,3,4), (1,2,6), (1,2,5), (1,2,4), (1,2,3) 54. Un copil doreste sa puna n bile, numerotate cu numere de la 1 la n, in m cutii, numerotate de la 1 la m. Stiind ca m<n, afisati toate modalitatile pe care le are copilul de a pune bilele in cutii, stiind ca intr-o cutie incap n bile. Ex : n=3, m=2 {{1,2,3},{-}}, {{1,2},{3}}, {{1,3},{2}}, {{1},{2,3}}, {{2,3},{1}}, {{2},{1,3}}, {{3},{1,2}}, {{-}, {1,2,3}} 55. Fie n cutii si m obiecte (m>n). Sa se tipareasca toate posibilitatile de repartizare a obiectelor in cutii, precum si numarul de posibilitati, stiind ca : In prima cutie se afla un obiect In a doua cutie se afla unul sau doua obiecte In a treia cutie se afla doua sau trei obiecte In a k-a cutie se afla k-1 sau k obiecte In a n-a cutie se afla n-1 obiecte Ex : pentru n=4 si m=9, problema are 5040 de solutii, una din acestea fiind : Cutia 1 : 1 Cutia 2 : 2 5 Cutia 3 : 3 4 9 Cutia 4 : 6 7 8 Pentru n=4 cutii si m=10 obiecte, problema nu are nici o solutie 56. Un turist doreste sa viziteze cateva orase din spatiul Schengen. Se cunosc pentru fiecare oras numarul de obiective turistice existente. Turistul doreste : Sa viziteze cel putin k1 si ce mult k2 orase ; Sa treaca o singura data prin fiecare oras ; Numarul obiectivelor vizitate in prima jumatate a turneului sau european sa fie mai mare decat numarul obiectivelor vizitate in a doua jumatate ; Sa viziteze cel putin p obiective turistice. Ex : n=7, k1=2, k2=5, p=15. numerele de obiective pt fiecare oras(7,4,10,8,12,3,6). Cateva solutii sunt: ( 3,7,4,1) (5,3,2,7) (7,5) (7,5,2)(7,5,6,4)(7,6,1) 57. Se citeste de la tastatura un sir de n numere naturale. Sa se afiseze toate subsirurile cu proprietatea ca suma elementelor este divizibila cu 3. Sa se afiseze lungimea celui mai lung subsir inclus in acest sir dat, cu proprietatea ca suma elementelor sale este divizibila cu 3. Prin subsir se va intelege o succesiune de elemente din sir nu neaparat adiacente.

Ex : n=5 si vectorul (1,4,5,6,9) solutia este (4,5,6,9) sau (1,5,6,9) 58. Se considera un set de n obiecte x1, x2,,xn. Fiecare obiect xi se caracterizeaza prin masa gi si valoarea vi. Sa se realizeze un program care stabileste multimea de obiecte cu valoare totala maxima astfel incat masa totala a obiectelor sa nu depaseasca greutatea g_max. Se considera ca nu orice doua obiecte pot fi selectate impreuna (adica sunt incompatibile).Ca date de intrare se furnizeaza numarul n al obiectelor din setul initial, masa maxima acceptata, apoi, pe rand, pentru fiecare obiect, cate doua valori reale reprezentand masa si valoarea acestuia si o lista de perechi de obiecte incompatibile. Se vor tipari indicii corespunzatori obiectelor ce au fost selectate n multimea optima, precum si masa si valoarea totala a obiectelor din multime. Exemplu : 4 40 10 100 15 200 20 100 25 500 24 59. Fiind dat un numar N, sa se scrie ca suma de numere intregi distincte al caror cel mai mare divizor comun este maxim posibil. Exemplu: Pentru n=68 solutia este (17,51) 60. Spunem ca un numar are proprietatea sufixului, daca el apare ca sufix al patratului sau, adica cifrele sale apar la sfarsitul sirului de cifre ce reprezinta acel numar ridicat la patrat. Sa se genreze toate numerele avand maxim 4 cifre si care au proprietatea sufixului. Exemplu: 9376 are proprietatea sufixului (93762=87909376). 61. Dintr-un numar de cuvinte citite de la intrare, urmeaza sa se formeze fraza cea mai lunga cu putinta, respectand urmatoarele reguli: - cuvintele vor fi asezate in fraza astfel incat litera cu care se termina un cuvint sa fie litera cu care incepe cuvintul urmator; - in fraza cuvintele vor fi separate de un blanc. Se cere sa se listeze fraza de lungime maxima. Prin fraza de lungime maxima vom intelege: a) o fraza cu numar maxim de caractere (nu se numara si spatiile); b) o fraza cu numar maxim de cuvinte. Exemplu: Daca cuvintele sunt : elev, viitor, vin, noapte, etaj, palat, roua, apartament, joc, arici, ic,atunci frazele pot fi: a) vin noapte elev viitor roua apartament b) vin noapte elev viitor roua arici ic 62. Se considera o lista de piese de domino (oricare doua piese sunt distincte), fiecare piesa de domino constand dintr-o pereche de numere intregi (I, j). Dominourile pot fi aliniate intr-un sir dupa urmatoarele reguli: - un domino poate fi adaugat la oricare din capetele sirului de dominouri deja construit, piesa putind fi rotita; - doua dominouri consecutive trebuie sa aiba acelasi numar la capetele aflate in contact. - Sa se genereze secventa de piese de lungime maxima. 63. (Biacoperirea unei multimi) Sa se genereze toate descompunerile unei multimi in submultimi de elemente distincte astfel incat fiecare element al multimii initiale sa apara in descompunere de doua ori. Generalizare pentru k-acoperire. 64. La un concurs sportive s-au inscris n concurenti, avand numerele de concurs 1, 2, .., n. Pentru fiecare sportiv se cunoaste tara de origine (un sir de caractere). In fiecare zi a competitiei, vor intra in concurs m concurenti (m<=n). Afisati toate posibilitatile de a stabili ordinea intrarii in concurs a celor n concurenti stiind ca: -doi sportivi din aceeasi tara nu pot evolua unul dupa altul; - in cadrul unei zile concurentii intra in concurs in ordinea numarului de concurs. Exemplu: Pentru n=10, m=3 si urmatoarele tari: Romania, Franta, Franta, Germania, Franta, Romania, Grecia, Italia, Italia, Germania, cateva solutii sunt (in fiecare paranteza apar numerele de concurs ale concurentilor care vor concura intr-o zi): Solutie: (1,2,4)(3,6,7)(5,8,10)(9) Solutie: (1,2,4)(3,6,7)(5,9,10)(8) Solutie: (1,2,8)(4,6,9)(3,7,10)(5) Solutie: (1,3,4)(2,7,9)(5,6,10)(8) etc. 65. Se dau coordonatele (x,y) a n puncte in plan. Sa se determine multimile de p drepte obtinute prin unirea a doua din punctele date astfel incat toate punctele de intersectie a acestor drepte sa apartina multimii de puncte data initial. Exemplu: Daca punctele considerate au urmatoarele coordonate (1,3.5), (7,3.5), (4,5.5), (1,7.5), (7,7.5) si p=2 atunci o solutie este segmentul 1: (7,3.5)-(1,7.5), segmentul 2: (4,5.5)-(7,7.5). 66. Fie n segmente situate pe o aceeasi dreapta, numerotate distinct, de la 1 la n. Sa se scrie un program care determina numarul minim de culori necesare pentru a colora cele n segmente astfel incat oricare doua segmente care se intersecteaza sa fie colorate diferit si de asemenea, sa se determine o astfel de colorare. Pentru fiecare segment de dreapta se da extremitatea initiala a segmentului si lungimea sa. Exemplu Pentru n=5, extremitatile initiale (9,2,3,1,11) si lungimile (3,4,6,3,4) se obtine solutia Segmentul 1 culoarea 1 Segmentul 2 culoarea 2 Segmentul 3 culoarea 3 Segmentul 4 culoarea 1 Segmentul 5 culoarea 2 Exista 36 de solutii.

S-ar putea să vă placă și