Sunteți pe pagina 1din 7

Colegiul Naional Tudor Vladimirescu

I. Backtracking folosind permutri, aranjamente, combinri, produs cartezian


1. Fie S o permutare de ordin n>=1.O valoare k(1<=k<=n) se numete punct fix al permutrii s dac s(k)=k. S se genereze toate permutrile de ordin n(1<=n<=20) care au p puncte fixe(n i p se citesc de la tastatur). S se afieze numrul acestor permutri. 2. Dup o noapte de chef , Ceteanul Turmentat se afl n unei mari dileme :trebuie s urce cele n trepte (1<=n<=20) pn la ua casei sale. Din cauza strii de ebrietate avansate Ceteanul Turmentat nu poate s urce dect fie o treapt, fie dou. Ajutai-l, indicndu-i toate modurile n care el poate s urce cele n trepte,precum i cte posibiliti are n total la dispoziie. Exemplu : n=4 Sol.1: 1,2,3,4 ; Sol.2:1,2,4 ;Sol.3: 1,3,4 ;Sol.4: 2,3,4 ;Sol5: 2,4 3. O grup de studeni trebuie s-i planifice m examene n n zile, n>=m.. n cte moduri i cum se pot programa examenele, tiind c ntr-o zi se poate programa cel mult un examen? 4. Cte numere naturale diferite de n cifre (n<6) se pot forma cu cifrele 0,1, 2, 3, , 9, dac n fiecare astfel de numr, orice cifr apare cel mult odat i care sunt acestea? 5. S se genereze toate numerele de n cifre (n<6) care nu conin 3 cifre consecutive pe poziii alturate i ale cror cifre se afl n ordine strict descrectoare.Fiecare numr rezultat va fi scris pe cte o linie n fiierul text fisier.out. S se afieze i numrul total de soluii. 6. S se genereze toate irurile de lungime k ,formate din divizorii unui numr n(1<n,k<1000), n ordine cresctoare.Fiecare ir rezultat va fi scris pe cte o linie n fiierul text out.txt, iar numerele de pe linie vor fi desprite prin cte un spaiu.n cazul n care nu exist soluie se va afia pe ecran mesajul fr soluie 7. S se afieze tote numerele de n cifre ale cror prefixe sunt divizibile cu 2.(se consider prefix prima cifr a numrului). S se afieze i numrul total de soluii. 8. Se consider un ir de n numere naturale mai mici dect 30000. S se genereze toate subirurile cresctoare de k numere care se pot forma ncepnd cu primul element din ir. Fiecare subir rezultat va fi scris pe o linie. Exemplu : n=5 k=3 i numerele (3,1,5,6,4) se va afia : 345 346 356 9. Se citete de la tastatur un numr natural n<=14, care reprezint dimensiunea unei table de ah. S se genereze toate modalitile de aranjare pe tabl a n ture, astfei nct oricare dou ture s nu se atace. Rezultatele se vor afia ntr-un fiier ture.txt ca n exemplu de mai jos, pentru n=2:

T T T T
10. S se afieze toate posibilittile de aranjare pe o caset a n melodii, codificate cu numere naturale de la 1 la n, astfel nct melodia x s se cnte dup melodia y, n maximum 10. S se afieze i numrul total de soluii. 11. ntr-o mare nchis sunt n porturi. S se numere i stabileasc toate voiajele prin p porturi (p<=n). Porturile se introduc prin denumiri, dup ce s-au citit valorile pentru n i p. Soluiile vor fi afiate secvenial, pentru a putea fi vizualizate (apsare tast), numerotat, una pe linie. S se afieze i numrul total de soluii. 12. Se citesc de la tastatur un numr natural n(n<=20) i un numr natural v (v<n). S se scrie un program care afieaz toate numerele de la 1 la n n toate modurile posibile astfel nct ntre
1

Colegiul Naional Tudor Vladimirescu

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

oricare dou numere succesive diferena n modul s fie mai mare dect v. Datele de ieire se vor scrie n fiierul ieire.txt. S se afieze i numrul total de soluii. Se citete un numr natural n. S se genereze toate matricile ptratice binare de dimensiune nxn, cu proprietatea c n fiecare coloan exist exact o cifr 0. Ex. Pentru n=3 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 Un grup de n (n<=10) persoane numerotate de la 1 la n sunt aezate pe un rnd de scaune, dar ntre oricare dou persoane vecine s-au ivit conflicte. Scriei un program care afieaz toate modurile posibile de reaezare a persoanelor, astfel nct ntre oricare dou persoane aflate n conflict s stea una sau cel mult dou persoane. Ex. Pentru n=4 programul trebuia s afieze: 3 1 4 2 2 4 1 3 Se d un alfabet care conine v vocale i c consoane. Se cere s se genereze toate cuvintele de lungime n care nu conine trei vocale sau trei consoane alturate. S se afieze i numrul total de soluii. Se consider n piese de domino citite ca perechi de numere naturale, fiecare pe cte un rnd de intrare. S se afieze toate soluiile de aranjare a acestor piese ntr-un lan domino de lungime a, citit, fr a roti piesele. ( Un lan domino se alctuiete din piese domino astfel nct o pies este urmat de alta a crei prim jumtate coincide cu jumtatea a doua a piesei curente. S se afieze i numrul total de soluii. Se consider n cuburi (max. 10), numerotate de la 1 la n, de laturi i culori cunoscute. S se numere i se alctuiasc toate turnurile posibile din h cuburi astfel nct fiecare turn s aib stabilitate (orice cub se aeaz peste un altul cu latura mai mare sau egal cu a lui) i s nu existe dou cuburi consecutive de aceeai culoare. Soluiile se vor afia distinct, astfel ca utilizatorul s aib timp s le citeasc, vor specifica numrul turnului i vor cuprinde h grupuri de informaii de tipul: nr. cub, latur, culoare. S se afieze i numrul total de soluii. S se afieze toate modurile de aranjare a elementelor unui ir dat de numere ntregi, astfel nct n irul rezultat s nu existe dou elemente alturate negative. S se afieze i numrul total de soluii. La un festival de muzic pop, s-au nscris n melodii, codificate 1, 2, 3,, n (n>=4). S se afieze toate posibilitile de a stabili ordinea intrrii n concurs a melodiilor, tiind c melodiile m1 i m2 trebuie s evolueze a doua, respectiv penultima (m1, m2 {1, 2,, n}. S se afieze i numrul total de soluii. La un concurs sportiv s-au nscris n concureni, numerotai 1, 2, ,n. Pentru fiecare concurent se cunoate ara de origine (un ir de caractere). S se afieze toate posibilitile de a stabili ordinea intrrii n concurs a sportivilor, tiind c: - doi sportivi din aceeai ar nu pot evolua unul dup cellalt; - trebuie respectat ordinea cresctoare a numerelor de concurs a sportivilor. S se genereze toate cuvintele cu patru litere, care au prima i ultima liter vocal, litera a doua consoan din mulimea P, R, S, T iar a treia liter consoan din mulimea B, M, R, T, V. S se afieze i numrul total de soluii. Scriei programul care genereaz i numr cte cuvinte de cinci litere ale alfabetului englez se pot forma, cu condiia s nu existe dou consoane alturate i nici dou vocale alturate.

II. Backtracking cu sume


1. S se afieze toate modurile de descompunere a unui numr natural n n sum de p numere naturale distincte. S se afieze i numrul total de soluii. 2. Scriei un program care s afieze toate modalitile prin care se poate plti o sum S folosind n bancnote de valori b1<b2<b3<<bn. Se presupune c avem la dispoziie oricte bancnote din

Colegiul Naional Tudor Vladimirescu

3.

4. 5.

6.

7. 8.

9.

10.

11. 12.

13.

14. 15.

16.

fiecare tip. Numerele n i S, precum i valorile bancnotelor se citesc de la tastatur, iar modalitile de plat vor fi scrise n fiierul bani.out. S se afieze i numrul total de soluii. S se generez toi vectorii diferii, fiecare vector generat fiind format din n elemente cifre de 1 i 0, suma elementelor sale neavnd voie s depeasc valoarea S. S se afieze i numrul total de soluii. S se afieze toate irurile de n paranteze care se nchid corect (2<=n<=20) S se afieze i numrul total de soluii. Se consider o mulime M de numere naturale, avnd n elemente. S se scrie un program care afieaz toate submulimile mulimii M ale cror elemente nsumate sunt egale cu o valoare natural S dat. S se afieze i numrul total de soluii. Orice numr natural se poate scrie ca sum de termeni numere naturale nenule. Astfel 4=3+1=2+2=2+1+1=1+1+1+1, deci n patru moduri. S se scrie numrul n ca sum de numere naturale i s se afieze numrul de posibiliti descoperite. S se afieze i numrul total de soluii. S se scrie n fiierul solutie.txt toate numerele (cte unul pe fiecare rnd) de n cifre egale cu de k ori produsul cifrelor, n i k fiind citite de la tastatur. S se afieze i numrul total de soluii. Se citete de la tastatur un numr natural nenul n<=8. S se genereze toate irurile de lungime n, formate din cifre de 0 i 1, suma elementelor lor s fie egal cu o valoare dat S. S se afieze i numrul total de soluii. Exist n omeri care trebuie s se reprofileze, fiecare n cte una din n meserii. colarizarea omerului i n meseria j prezint costul C[i,j], natural. Toate cele n meserii trebuie s fie ocupate de ctre cei n omeri. Dndu-se n i matricea costurilor C(nxn) s se precizeze toate posibilitile de atibuire a celor n meserii celor n omeri, precum i costul total al colarizrii penru fiecare repartizare. S se afieze i numrul total de soluii. S se afieze toate numerele formate din cifre distincte cu proprietatea c suma cifrelor este S, dat. Soluiile vor fi afiate ntr-un fiier de ieire. S se afieze i numrul total de soluii. Ex : pentru S=3 se afieaz : 102, 12, 120, 201, 21, 210, 3, 30, numr soluii : 8 Se d o matrice ptratic A(nxn). S se precizeze care este suma maxim care se poate obine prin nsumarea elementelor matricii aflate pe linii i coloane diferite. Pentru realizarea orarului unei clase de elevi trebuie s fie programate n fiecare zi, fie o or de informatic din cele trei ore pe sptmn, fie o or de fizic din cele dou ore pe sptmn. n cte moduri se poate face aceast programare, tiind c sptmna are 5 zile lucrtoare? O soluie va fi o succesiune de 5 litere din mulimea {I, F}, soluia IFIIF semnificnd faptul c luni este programat o or de informatic, mari una de fizic, miercuri i joi cte una de informatic, vineri ultima de fizic. S se afieze i numrul total de soluii. La o admitere se dau n examene. La primul examen se pot obine de la 0 la p1 puncte, la al doilea se pot obine de la 1 la p2 puncte .a.m.d.. Pentru reuit, un candidat trebuie s obin cel puin m puncte n total. Din fiierul f.in se citesc n, m i irul p1, p2, ,pn, naturale. S se scrie n fiierul f.out toate variantele de de punctaje ce trebuie obinute la cele n examene i care conduc la reuita la admitere. S se afieze i numrul total de soluii. S se afieze toate numerele de cte n cifre (0<n<=10) cu suma cifrelor egal cu S. S se afieze i numrul total de soluii. ntr-o mare nchis sunt n porturi. Staionarea ntr-un port se taxeaz printr-un cost asociat. S se stabileasc toate voiajele distincte prin p porturi (p<=n) care nu depesc un cost total de staionare dat. Porturile se introduc prin denumiri, dup ce s-au citit valorile pentru n i p naturale, costurile i costul total fiind date ca numere reale Soluiile vor fi afiate secvenial, pentru a putea fi citite (apsare tast), fiecare afiare coninnd: nr. voiaj, lista denumirilor porturilor, costul total al voiajului.. S se elaboreze toate variantele de chestionare ce se pot obine dintr-un set total de n ntrebri (n<=20) care s aib ntre a i b ntrebri, iar ntrebrile s totalizeze minim p puncte i maxim q puncte. Se citesc n ordine: numrul de ntrebri, apoi fiecare ntrebare, text de maximum 100 de caractere, urmat de punctajul su i, la sfrit, limitele a, b, p i q.

Colegiul Naional Tudor Vladimirescu

17. Fiind dat un numr natural pozitiv n, s se produc la ieire toate descompunerile sale ca sum de numere prime. S se afieze i numrul total de soluii. 18. In fiierul text numere.in se dau : - pe prima linie un numr natural n<=15; - pe a doua linie n numere naturale x[1], x[2], ,x[n] separate printr-un spaiu ; - pe a treia linia un numr natural S cu cel mult 9 cifre. Se cere s se determine irul de semne + i ce trebuiesc puse n n faa numerelor x[1], x[2], , x[n] pentru ca rezultatul expresiei s fie egal cu S. Aceste iruri se vor scrie cte unul pe fiecare rnd ntr-un fiier text solutie.out.

III. Backtracking colorat


1. Se cere s se coloreze o hart cu n ri, folosindu-se numai 4 culori, oricare dou ri vecine s fie colorate diferit. S se afieze i numrul total de soluii. 2. Se citesc 9 denumiri de culori (maximum 16 caractere fiecare) din care trebuie s se alctuiasc toate drapelele tricolore posibile, cu condiia ca la mijloc s fie numai o culoare din ultimele dou citite. Fiecare soluie va aprea pe rnd, cte una, la cererea utilizatorului (acionarea unei taste). 3. Pe o tij vertical se gsesc amestecate, m bile de n culori diferite. S se separe aceste bile, punndu-le pe n tije, conform celor n culori. S se afieze i numrul total de soluii. 4. Avem la dispoziie 6 culori, alb, galben, rou, verde, albastru, negru. S se precizeze toate drapelele tricolore care se pot proiecta, tiind c orice drapel are prima culoare galben sau verde, cele trei culori de pe drapel sunt distincte, iar culoarea din mijloc trebuie s fie obligatoriu rosie. S se afieze i numrul total de soluii. 5. Utiliznd m culori (maximum 5), numerotate de la 1 la m, s se coloreze n toate modurile posibile n piloni (maximum 10), care iniiali sunt albi, aflai pe o suprafa oarecare, dac acetia se vd ntre ei i doi piloni care se vd ntre ei nu trebuie s aib aceeai culoare. Pilonii sunt n relaie de se vd ntre ei dac orice linie imaginar care unete vrfurile a doi piloni nu trece printr-un cmp ocupat de alt pilon. Datele de intrare se compun din: - un numr natural n reprezentnd numrul de piloni - perechi x, y , pe cte un rnd fiecare, pn la ntlnirea sfrit de fiier(^Z), pereche ce semnific faptul c x i y se vd - un numr natural m, numrul de culori; - denumirile culorilor, string-uri, cte unul pe fiecare rnd. 6. Se consider n mrgele de culori nu neaprat distincte. S se scrie un program pentru afiarea tuturor posibilitilor n care mrgelele se pot nira astfel nct s nu existe dou mrgele alturate de aceeai culoare. S se afieze i numrul total de soluii.

IV. Alte probleme de backtracking


1. In vederea desfurrii unui concurs, trebuie format o delegaie din p dintre cei n profesori ai * unui liceu (p, n N , p n 30 ). Scriei un program care pentru valorile citite de la tastatur ale lui n i p, va genera, folosind backtracking, n fiierul comisie.bac toate posibilittile de alctuire a delegaiei. Fiecare soluie va fi afiat pe o linie separat n fiierul de ieire, elementele fiind separate prin spaii. Considerai profesorii numerotai de la 1 la n. Programul va fi comentat. 2. Generai prin metoda backtracking toate numerele naturale cu n cifre (1<=n<=9) care sunt supermultiple de p (p>1). Un numr este supermultiplu de p, dac att numrul ct i toate numerele obinute din el prin tierea succesiv a cifrelor sale ncepnd cu cifra unitilor sunt multiple de p. Valorile n i p se introduc de la tastatur i sunt corecte. Descriei algoritmul pe care l folosii. 3. Numim numrul x superprim dac att x ct i toate numerele obinute prin amestecarea cifrelor lui x sunt numere prime. Pentru o valoare n citit, scriei un program care s determine dac acesta reprezint un numr superprim sau nu.
4

Colegiul Naional Tudor Vladimirescu

Ex: pentru n=3 i p=2 numrul 246 este supermultiplu de 2 deoarece numerele 246, 24, 2 sunt multiple de p. 4. Se citete un numr natural n. S se genereze toate numerele care au n reprezentarea lor binar attea cifre de 1 i de 0 cte are i reprezentare numrului n n baza 2. S se afieze i numrul total de soluii.

5. Se citesc de la tastaur dou numere naturale n i m (o<m<12). S se afieze toate irurile de n litere distincte, litere alese dintre primele m ale alfabetului englez. Ex : pentru n=2 i m=4 se afieaz, nu neaprat n aceast ordine, irurile :AB, BA, AC, CA, AD, DA, BC, CB, BD, DB, CD. 6. Civa copii trebuie s fie vizitai de Mo Crciun. Scriei un program care determin toate modurile diferite n care pot fi ei azai n lista lui Mo Crciun, astfel nct s fie toi vizitai n ordinea descresctoare a vrstei lor. Se citesc de la tastatur : n, numrul de copii (0<n<10), apoi numele i vrsta fiecruia dintre cei n copii. Se scriu n fiierul craciun.txt, pe linii diferite, liste cu numele copiilor, n irdinea n care vor fi vizitai de Mo Crciun. O list este format din toate cele n nume ale copiilor, ntr-o anumit ordine, orice dou nume succesive fiind desprite printr-un spaiu. Ex : pentru datele de intrare n=4 Dan 6 Cristina 4 Corina 2 Iulia 4 se scriu n fiierul craciun.txt urmtoarele soluii: Corina Iulia Cristina Dan Corina Cristina Iulia Dan 7. S se scrie n fiierul soluii.dat toate numerele de n (0<n<10) cifre, care adunate fiecare cu numrul obinut prin inversarea ordinii cifrelor sale dau un numr ptrat perfect. 8. Se d un numr natural n. Se cere s se genereze toate matricile nxn avnd ca elemente numere distincte din 1..nxn astfel nct nici un element s nu aib aceeai paritate cu vecinii si (vecinii unui element se considera pe directiile N,S,E,V). 9. Un patron vrea sa-si aprovizioneze depozitul en-gross cu anumite produse. El are de ales dintre n centre de aprovizionare.Fiecare centru dispune de o cantitate p[i] de produse. Stiind c: - viziteaza centrele n ordinea 1n (cresctoare) - de la un centru ia toata marfa - de la un centru trebuie sa ia o cantitate mai mare decat de la centrul anterior ajutai-l pe patron s gseasc cel mai lung drum ce satisface conditiile de mai sus. 10. Se da o lista de n cuvinte. Sa se formeze cel mai lung sir in care fiecare cuvant incepe cu litera cu care se termina predecesorul. 11. Sa se genereze toate permutarile de dimensiune n cu valori in 1..n cu proprietatea ca oricare ar fi 2<=i<=n exista un 1<=j<=i astfel incat |v(i)-v(j)|=1. 12. O persoan are la dispoziie un rucsac cu o capacitate de G unitai de greutate i intenioneaz s efectueze un transport in urma cruia s obin un ctig. Persoanei i se pun la dispoziie N obiecte.Pentru fiecare obiect se cunoate greutatea(mai mic dect capacitatea rucsacului) i ctigul obinut in urma transportului su. S se afieze toate modalitile de a-i ncrca rucsacul cu obiecte dintre cele date, astfel nct s obin un ctig c, dat, tiind c obiectele nu se pot tia.
5

Colegiul Naional Tudor Vladimirescu

13. Se d un numr natural par N .S se afeeze toate irurile de N paranteze care se inchid corect.
14. Se citete de la tastatur un cuvnt c, format din n litere mari (n<=15). Presupunnd c sunt generate n ordine lexicografic (ordinea de dicionar ) toate cuvintele distincte ce se pot forma cu exact n litere din mulimea {A, D, M, O}, s se scrie un program care verific dac c se afl sau nu printre cuvintele generate i, n caz afirmativ, afieaz al ctelea este n list. Se va afisa pe ecran NU dac c nu se afl printre cuvintele generate> Dac c se afl printre cuvintele generate se va afisa pe ecran mesajul DA, urmat, pe randul urmtor, de numrul cerut. Exemplu : penrt c=ADA se vor afia pe ecran liniile : DA 5 Se observ c irul citit are 3 litere. Succesiunea de cuvinte formate cu 3 litere din mulimea {A, D, M, O}, cuvinte aflate n ordine lexicografica, este : AAA, AAD, AAM, AAO, ADA, ADD, ADM, ADO, AMA, AMD, AMM, AMO, AOA, AOD, AOM, AOO, DAA, DAD, DAM, etc. Deci ADA se afl n irul de cuvinte i este al cincilea. 15. Se citete de la tastatur un numr natural (n<15). S se genereze toate irurile formate din numerele 1, 2, 3, , n astfel nct niciuna dintre valori s nu lipseasc i s nu apar de dou ori ntr-un ir, iar valorile impare s se gseasc ntotdeauna la locul lor : 1 pe prima pozitie din ir, 3 pe a treia poziie din ir, 5 pe a cincea poziie din sir, etc. Fiecare ir se va afisa pe un rnd al ecranului, cu spaii ntre elementele ce-l formeaz. De exemplu, penrtu n=6, se vor afia pe ecran ( nu neaprat n aceast ordine) irurile : 123456 123654 143256 143652 163254 163452 Se observ c n fiecare ir locul valorilor impare este neschimbat. 16. Se citete de la tastatur un numr natural (n<15). S se genereze toate irurile formate din numerele 1, 2, 3, , n astfel nct niciuna dintre valori s nu lipseasc i s nu apar de dou ori ntr-un ir, iar valorile pare s se gseasc ntotdeauna la locul lor : 2 pe a doua pozitie din ir, 4 pe a patra poziie din ir, 6 pe a asea poziie din sir, etc. Fiecare ir se va afisa pe un rnd al ecranului, cu spaii ntre elementele ce-l formeaz. De exemplu, penrtu n=6, se vor afia pe ecran ( nu neaprat n aceast ordine) irurile : 123456 125436 321456 325426 521436 523416 Se observ c n fiecare ir locul valorilor pare este neschimbat. 17. Se citesc de la tastatur un numr natural n (n<20) i apoi un cuvnt cuv format din cel mult 10 litere mici ale alfabetului englez. S se scrie un program care afieaz n fiierul CUVINTE.TXT n cuvinte distincte care se pot forma prin amestecarea literelor cuvntului dat. Cuvntul nu trebuie s se afle printre cele n cuvinte generate. Fiecare cuvnt obinut va fi afisat pe o linie separat din fiier. Dac nu exist posibilitatea formrii a n cuvinte distincte cu proprietatea cerut, se va scrie n fiier mesajul EROARE. De exemplu : pentru n=4 i cuv=examen, 4 soluii posibile care se pot scrie n fsierul CUVINTE.TXT sunt : amenex eaexmn
6

Colegiul Naional Tudor Vladimirescu

emanex xemena Se observ c sunt i alte posibiliti de a alege 4 cuvinte care respect condiiile din enun, pentru a fi scrise n fiier. 18. Se citesc de la tastatur un numr natural s (0<s<5000) reprezentnd o sum de bani exprimat n mii de lei. S se determine un mod de plat a sumei s tiind c avem la dispoziie 9 monede de o mie, 8 monede de 5 mii, 5 bancnote de 10 mii, 8 bancnote de 50 de mii i 45 bancnote de 100 de mii de lei. Se va afia pe ecran modalitatea de plat n formatul sugerat prin exemplul urmtor sau mesajul IMPOSIBIL dac nu este posibil palta sumei cu monedele disponibile. Pentru s=3074 (3074 mii de lei), se poate afia soluia: 3074=3x100+1x50+2x10+4x1. Se observ c sunt mai multe posibiliti de plat, ns problema solicit determinarea doar a uneia dintre posibiliti.

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