Sunteți pe pagina 1din 54

ATP– H1

1. Care din urmatoarele afirmatii referitoare la metoda Divide Et Impera nu


este adevarata:
a. implementarea este realizata de obicei prin subprograme recursive
b. descompune problema in probleme de complexitate mai mica de acelasi
tip cu problema initiala sau in probleme cu rezolvare imediata (primitive)
c. combina (asambleaza) solutiile problemelor obtinute in urma
descompunerii pentru a obtine solutia problemei initiale
d. descompune problema in probleme de complexitate mai mica pentru care
se apeleaza alte metode de descompunere diferite de metoda de
descompunere initiala
e. sunt definite subprobleme primitive(conditii terminale) a caror solutie
este “cunoscuta” sau data.

2. Subprogramul: int cauta(float v[], int n, float val)


{ int rez; if (n ==0 ) rez = -1; else if (v[n – 1] == val) rez = n – 1; else rez =
cauta(v, n-1, val); return rez; }
calculeaza:
a. prima aparitie a unei valori date (val) intr-un vector
b. ultima aparitie a unei valori date (val) intr-un vector
c. prima si ultima aparitie a unei valori date (val) intr-un vector
d. numarul de aparitii ale unei valori date (val) intr-un vector
e. prima valoare diferita de valoarea data (val)

3. Care din urmatoarele afirmatii referitoare la arborele orientat sunt adevarate?


1. graful suport este conex
2. graful suport este aciclic
3. este graf asimetric
4. este graf simetric
5. este arbore directionat cu radacina
6. este arbore directionat fara radacina
a. toate
b. 1, 2, 3, 5
c. 1, 2, 3, 6
d. 1, 2, 4, 5
e. 6

4. In configuratia urmatoare (specifica metodei backtracking)

este prezentata operatia de:


a. atribuie si avanseaza
b. incercare esuata
c. revenire dupa construirea unei solutii
d. revenire
e. nu exista o astfel de operatie

5. Reteaua strazilor auto din Bucuresti se reprezinta corect cu ajutorul structurii


de date:
a. graf neorientat
b. arbore
c. lista liniara
d. graf orientat
e. lista dublu inlantuita

6. Care din urmatoarele afirmatii legate de subprogramele recursive sunt


adevarate:
1. pot fi bazate pe o metoda de tip reducere
2. pot fi bazate pe o metoda de tip descompunere
3. pot fi folosite in rezolvarea problemelor care utilizeaza metoda divide et
impera
4. pot fi folosite la implementarea algoritmilor de parcurgere a arborilor
5. nu pot fi scrise pentru implementarea unor algoritmi iterativi
a. toate
b. 2, 3, 4, 5
c. 1, 2, 3
d. 2, 3, 4
e. 1, 2, 3, 4
7. Fie subprogramul void Test (int i, int n)
{ printf (“ * “); if (i < n) Test (i + 1, n); printf (“ + “); }
Ce va afisa apelul Test (1, 5) ?
a. *+++++
b. *****+
c. ******
d. +++++
e. *****+++++

8. Fie graful G = (V, E) cu V = {1, 2, 3, 4, 5, 6}, E = {(1,2), (1,4),


(2,4),(4,5),(5,6)} si v0 = 2. Ordinea in care sunt vizitate varfurile
corespunzator parcurgerii in latime BF este:
a. 2, 1, 3, 4, 5, 6
b. 2, 3, 1, 5, 6, 4
c. 1, 2, 4, 5, 6
d. 2, 1, 4, 5, 3, 6
e. 2, 1, 4, 5, 6
9. Care din urmatoarele afirmatii NU este valabila pentru algoritmul lui
Kruskal
a. determina arborele de cost minim
b. dintre arcele disponibile (care nu au fost analiza inca) se alege arcul cu
ponderea cea mai mica si care nu formeaza un ciclu prin adaugarea la
arbore
c. dintre arcele disponibile (care nu au fost analizate inca) se alege arcul cu
ponderea cea mai mica si care formeaza un ciclu prin adaugarea la arbore
d. multimea muchiilor selectate E0 se initializeaza la inceput cu multimea
vida
e. determina n – 1 muchii, unde n este numarul de varfuri

10. Metoda Greedy este


a. o metoda rapida, de complexitate redusa, care genereaza intotdeauna
solutia optima a problemei tinand cont de contextul general
b. o metoda lenta, de complexitate mare, care genereaza toate solutiile
posibile
c. o metoda rapida, de complexitate mare, care genereaza solutia optima a
problemei
d. este o metoda rapida, de complexitate redusa, pentru obtinerea unei
solutii acceptabile nu neaparat cea mai buna
e. este o metoda costisitoare, care la fiecare pas alege cea mai buna cale
tinand cont de contextul general
ATP – H2

1. Un graf reprezentat prin matrice de adiacenta poate fi verificat daca este


conex prin urmatoarele metode:
1. folosind parcurgerea in adancime
2. folosind parcurgerea in latime
3. folosind matricea existentei drumurilor
4. folosind metoda backtracking
a. 1, 2, 3, 4
b. 1, 2, 3
c. 3
d. 1, 2
e. nici una din variantele prezentate

2. Secventa: for (inc = n/2; inc > 0; inc = inc /2)


for(I = inc; I < n; I ++)
for (j = I – inc; (j >= 0) && (v[j] >= v[j + inc] ); j = j – inc)
{ a = v[j]; v[j] = v[j + inc]; v [j + inc] = a; }
realizeaza:
a. sortarea elementelor unui vector prin metoda Quicksort
b. sortarea elementelor unui vector prin interclasare
c. sortarea elementelor unui vector prin metoda metoda Shell
d. sortarea elementelor unui vector prin interschimbare
e. compactarea elementelor unui vector

3. Daca G este un graf neorientat, conex si aciclic, atunci graful:


a. este complet
b. este arbore
c. este asimetric
d. poate avea varfuri izolate
e. este digraf
4. Fie arborele din figura alaturata. Parcurgerea prin metoda A – postordine
(reprezentarea Fiu – Frate) determina urmatoarea evolutie:
a. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13;
b. 1, 2, 5, 6, 9, 10, 11, 12, 13, 7, 3, 4, 8;
c. 5, 9, 10, 11, 12, 13, 6, 7, 2, 3, 8, 4, 1;
d. 9, 10, 11, 12, 13, 5, 6, 7, 8, 2, 3, 4, 1;
e. 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1;

5. Care din urmatoarele afirmatii legate de subprogramele recursive NU este


adevarata:
a. repetarea este asigurata prin autoapel
b. trebuie sa existe o conditie de oprire (sau de continuare) a generarii de
noi apeluri
c. pot fi utilizate in rezolvarea unor probleme care utilizeaza metoda
backtracking
d. pot fi folosite numai pentru implementarea unor algoritmi recursivi
e. necesita consumul suplimentar de resurse

6. Un algoritm de tip backtracking genereaza, in ordine, toate permutarile unei


multimi cu 5 elemente. Primele 4 solutii generate sunt: 1 2 3 4 5, 1 2 3 5 4, 1
2 4 3 5, 1 2 4 5 3. Care este a 5-a solutie generata din acest algoritm?
a. 1 3 2 4 5
b. 1 3 2 5 4
c. 1 3 4 2 5
d. 1 2 5 3 4
e. 1 2 5 4 3
7. Intr-un graf neorientat G, notam cu n nr de varfuri si cu m nr de muchii.
Daca graful este un arbore atunci intre n si m exista urmatoarea relatie
matematica:
a. m = n + 2;
b. n = m – 1;
c. n = m + 1;
d. n = m + 2;
e. n = m
8. Care din urmatoarele operatii NU fac parte din operatiile specifice metodei
optimului local:
1. alegerea unui element candidat x din multimea A
2. construirea unui element candidat x
3. verificarea acceptabilitatii elementului ales
4. adaugarea elementului ales la solutia partiala, .. ea ramane acceptabila
5. eliminarea elementului x selectat din solutia problemei
a. 1, 2 si 3
b. …
c. 4 si 5
d. 2 si 5
e. 1 si 5

9. In configuratia urmatoare (specifica metodei backtracking) este prezentata


operatia de:

a. atribuie si avanseaza
b. incercare esuata
c. revenire dupa construirea unei solutii
d. revenirea unui pas anterior, dupa consumarea tuturor valorilor posibile
pentru pasul curent
e. nu exista … de operatie
ATP – H3

10.Fie multimea de litere [a, b, c, d]. Se genereaza permutarile acestei multimi.


Precizati care sunt solutiile anterioara si urmatoare solutiei cabd:
f. bdac si cbad
g. bdca si cadb
h. bdca si cdba
i. bcda si cdba
j. bcda si cadb

11.Fie functia: int s(int n)


{ int rez; if (n == 0) rez = 0; else rez = n + s(n – 1); return rez; }.
In cazul apelului s(3), functia va returna valorea:
f. 1
g. 6
h. 10
i. 7
j. 11

12.Care din urmatoarele afirmatii referitoare la metoda Divide et Impera sunt


adevarate?
1. este utilizata in rezolvarea unor probleme complexe
2. implementarea este realizata de obicei prin subprograme recursive
3. se aplica pentru problemele care pot fi descompuse in probleme cu
complexitate mai mica
4. rezolvarea problemelor rezultate in urma descompunerii este mai
usoara decat rezolvarea intregii probleme initiale
5. pentru fiecare din problemele rezultate in urma descompunerii se
aplica un procedeu diferit de descompunere
f. 1,2,3,4,5
g. 1,3,4,5
h. 2,3,4,5
i. 1,2,3,4
j. 3,4

13.Fie graful G = (V, E) graf, cu V = {1,2,3,4,5,6,7} si E { (1,4), (1,5), (2,4), (3.


6), (4, 7) } si v0 = 2. Ordinea in care sunt vizitate varfurile corespunzator
parcurgerii in latime BF este:
f. 1,2,4,5,7
g. 2,3,6
h. 2,1,7,5
i. 2,4,1,7,5,3,6
j. 2,4,1,7,5

14.Care din urmatoarele afirmatii NU este adevarata:


f. un algoritm iterativ sau recursiv poate fi implementat printr-un
subprogram iterativ sau recursiv
g. un subprogram recursiv genereaza (cel putin) un apel catre el insusi
h. la recursivitatea directa, apelul recursiv se realizeaza prin intermediul mai
multor functii care se apeleaza circular
i. recursivitatea directa poate fi simpla sau multipla
j. fiecare apel recursiv trebuie aplicat unei probleme mai simple decat in
pasul urmator

15.Algoritmul prezentat in figura alaturata determina:


f. drumurile minime de la un nod al unui graf la toate celelalte noduri din
graf
g. arborele partial de cost minim (algoritmul lui Kruskal)
h. arborele partial de cost minim (algoritmul lui Prim)
i. toate componentele conexe ale unui graf
j. costurile drumurilor de la varful initial v0 la toate celelalte noduri din
graf
16.Un graf neorientat G contine un arbore partial daca si numai daca G este:
f. aciclic
g. digraf
h. eulerian
i. hamiltonian
j. conex

17.Un arbore directionat este:


f. un graf orientat asimetric cu graful suport corespunzator lui de tip
arbore
g. un graf orientat simetric si graful suport corespunzator lui de tip
arbore
h. un graf neorientat si graful suport corespunzator lui de tip arbore
i. un graf conex neorientat si graful suport corespunzator lui de tip
arbore
j. niciuna din variantele de mai sus

18.In configuratia urmatoare (specifica metodei backtracking) este prezentata


operatia de:

f. atribuie si avanseaza
g. incercare esuata
h. revenire dupa construirea unei solutii
i. revenire
j. nu exista o astfel de operatie

19. Care din urmatoarele afirmatii referitoare la implementarea recursiva este


adevarata:
a. consum mic de resurse de memorie
b. timp de executie mic
c. usurinta in proiectare/programare (lungimea mica a codului sursa)
d. scaderea numarului de operatii
e. se poate aplica numai pentru rezolvarea unor probleme complexe, care nu
pot fi rezolvate prin implementare iterativa
ATP EXAMEN GRILA – H4

1. Care din urmatoarele afirmatii legate de metoda Backtracking sunt


adevarate:
1. este o metoda lenta
2. este o metoda costisitoare
3. este o metoda de complexitate mare
4. este o metoda rapida
5. solutia se construieste element cu element
6. verificarea conditiei de continuare garanteaza obtinerea unei solutii
rezultat
a. 1, 2, 3, 5, 7
b. 2, 3, 4, 5, 6
c. 1, 2, 3, 5, 6
d. 1, 2, 3, 7
e. 4, 7

2. Algoritmul Dijkstra:
a. calculeaza distanta si drumul minim intre 2 noduri date ale unui graf
b. determina distantele intre oricare 2 noduri ale unui graf
c. determina drumurile minime intre toate nodurile din graf
d. determina toate drumurile posibile intre 2 noduri date
e. calculeaza distantele si drumurile minime de la un nod al unui graf la
toate celelalte noduri din graf

3. Fie functia: int calc (int n)


{ int rez; if (n == 0 || n == 1) rez = 1; else rez = 2*calc(n – 1) + calc (n-2);
return rez; }
Ce va returna apelul calc (3)?
a. 17
b. 15
c. 9
d. 7
e. 21

4. Care din urmatoarele afirmatii NU corespunde metodei Greedy (metoda


optimului local):
a. problema poate fi imaginata ca o multime A cu n elemente
b. pot exista mai multe submultimi diferite acceptabile (solutii posibile),
dintre care una este considerata solutie optima pe baza unui criteriu care
trebuie maximizat (minimizat)
c. o solutie posibila este o submultime (B) care indeplineste o conditie data
(B este acceptabila)
d. se repeta selectarea unui element din multimea A de maxim n ori (nr de
elemente corespunzator multimii A)
e. problema se descompune in probleme de complexitate mai mica sau
probleme cu rezolvare imediata

5. Un graf G este arbore daca G este:


a. conex
b. aciclic si neconex
c. aciclic si conex
d. ciclic si neconex
e. conex si ciclic

6. Prin recursivitate indirecta se intelege:


a. un subprogram A apeleaza subprogramul A
b. un subprogram A apeleaza un alt subprogram B, iar subprogramul B
apeleaza subprogramul C
c. un subprogram A apeleaza un alt subprogram B, iar subprogramul B
apeleaza subprogramul A
d. un subprogram A apeleaza un alt subprogram B, iar subprogramul B nu
apeleaza subprogramul A
e. niciuna din variantele de mai sus

7. Fie graful G = (V, E) graf, cu V = (1, 2, 3, 4, 5, 6, 7, 8, 9), E = ( (1, 2), (1, 4),
(2, 7), (2, 8), (3, 6), (3, 9), (4, 5), (4, 7), (7, 8) ) si v0 = 4. Ordinea in care
sunt vizitate varfurile corespunzator parcurgerii in adancime DF este:
a. 4, 2, 1, 7, 5, 8
b. 3, 6, 9
c. 4, 2, 1, 5, 7, 8
d. 4, 1, 2, 7, 8, 5, 3, 6, 9
e. 4, 1, 2, 7, 8, 5

8. Care din urmatoarele afirmatii legate de sortarea crescatoare prin


interclasarea unei secvente de numere reale este adevarata:
a. pozitioneaza un element astfel incat toate elemente care ajung in fata lui
sa fie mai mici decat el si toate cele care ii urmeaza sa fie mai mari decat
el
b. insereaza un element intr-un vector ordonat pe pozitia corecta
c. este denumita si sortarea prin interschimbare
d. determina minimul din vector si il insereaza pe pozitia corecta
e. utilizeaza metoda Divide Et Impera

9. Determinarea arborelui partial de cost minim se poate face folosind:


1. algoritmul lui Prim
2. algoritmul lui Kruskal
3. algoritmul Roy – Warshall
4. algoritmul Roy – Floyd
a. 2
b. 2, 3, 4
c. 1, 2
d. 3, 4
e. 1, 2, 3, 4

10. Un algoritm de tip backtracking genereaza, in ordine, toate permutarile unei


multimi cu 4 elemente. Primele 3 solutii generate sunt: 1234, 1243, 1324.
Care este a 4-a solutie generata de acest algoritm?
a. 2143
b. 2134
c. 1423
d. 1342
e. 1432
Grile si probleme ATP 2019-2020

1. Pentru un algoritm recursiv formula recursiva:

R: sugereaza conditia de oprire a generarii de noiautoapeluri

2. Care dintre urmatoarele afirmatii sunt echivalente? 1. G este un graf


aciclic minimal; 2. G este un graf aciclic maximal; 3. G este un graf conex
maximal; 4. G este un graf conex minimal; 5. G este un graf arbore; 6. G
esteun digraf. R: 2, 4, 5

3. Pentru un algoritm recursiv formula recursiva: R: arata cand se termina


algoritmul

4. Implementarea recursiva este preferabila celei iterative: R: cand


implementarea iterativa este foarte complicata iar cea recursiva foarte
simpla

5. Fie graful G=(V,E) cu


V={(1,2),(1,3),(1,5),(1,7)(2,4)(3,4)(3,6),(4,5),(4,7),(6,7)} v0=1. Ordinea
in care sunt vizitate varfurile corespunzator parcurgerii in adancime DF
este: R:1,2,4,3,6,5,7;

6. Elementele matricei de adiacenta a unui graf neorientat cu n varfuri : R:


sunt simetrice fata de diagonala principal
7. Fie arborele din figura alaturata. Care sunt nodurile frunza? Alegeti o
optiune: R: 5,6,7,3,8

8. Fie arborele din figura alaturata. Parcurgerea prin metoda A-preordine


Fiu-Frate determina urmatoarea evolutie: 5,9,10,11,12,13,6,7,2,3,8,4,1

9. Care din urmatoarele afirmatii este adevarata pentru un algoritm recursiv.


R: poate fi implementat printr-o functie recursiva:
10.Care dintre urmatoarele afirmatii sunt adevarate pentru un algoritm
iterativ: R: poate fi implementat printr-o functie recursiva;

11.Fie graful G=(V,E), cu V={1,2,3,4,5,6,7},


E={(1,2),(1,3),(1,5),(1,7),(2,4),(3,4),(3,6),(4,5),(4,7),(6,7)} si v0=1.
Ordinea in care sunt vizitate varfurile corespunzator parcurgerii in
adancime DF este: R:1,2,3,5,7,4,6

12.Daca G este un graf neorientat, conex si aciclic, atunci graful: R: este


arbore

13. Un algoritm de tip backtracking genereaza, in ordine, toate permutarile


unei multimi cu 4 elemente {1,2,3,4}. Care este a 4-a solutie generata de
acest algoritm? R: 1342

14.Care dintre urmatoarele afirmatii referitoare la arborele orientat nu este


adevarata? R: este arbore directionat fara radacina

15.Pentru un algoritm recursiv formula recursiva: R: se aplica pentru


descompunerea problemei

16.Un algoritm de tip backtracking genereaza, in ordine, toate permutarile


unei multimi cu 5 elemente {a,b,c,d,e}. Care este a 3-a solutie generata de
aces algoritm? R:abdce

17.Care din urmatoarele operatii nu fac parte din operatiile specifice metodei
optimului local? R: construirea unui element candidat x
18.Graful orientat G este reprezentat prin matricea de adiacenta alaturata.
Cate varfuri din graful dat au gradul interior egal cu gradul exterior? R: 2

19.Coada utilizata in implementarea parcurgerii in adancime are rolul: R: nu


se foloseste coada la parcurgerea in adancime

20. Parcurgerea generalizata a unui graf se face: R: in adancime sau in latime

1.Fie un grav complet cu 10 varfuri. Care este nr. De muchii pentru acest graf?

R:c.45

2. Un algoritm recursive contine :

1)o forma de calcul recursive

2)mai multe forme de calcul recursiv

3)o formula de calcul direct


4)mai multe formule de calcul direct

R:d.1 sau 2 si 3 sau 4

3.Fie graful G=(V,E) cu V={1,2,3,4,5} si


E={(1,2);(1,4);(2,3);(2,5);(3,4);(3,5);(4;5)}.Determinati care este nr. Minim de
muchii care pot fi eliminate din graf astfel incat in graful partial rezultat sa
existe exact un vf de grad 0?

R:b.4

4.Fie urmatoarea situatie : un subprogram X apeleaza un alt subprogram Y, care


apeleaza subprogramul X.Ce tip de recursivitate este aceasta

R:a.mutuala

5.Fie urmatorul arbore cu 8 varfuri si radacina R=3 in reprezentarea fiu-frate:

Fiu: [7,0,5,6,2,0,0,0]

Frate: [0,4,0,0,8,0,0,1]

Care este inaltimea arborelui?

R:e.3

6.Fie utilizarea metodei Backtracking pentru generarea tuturor numerelor


palindrom formate din 4 cifre din multimea {1,2,3}.Exemplu de solutie
:1221.Nr. solutiilor identificare sunt:

R:c.9

7.Care dintre urmatoarele afirmatii nu este specifica alg. Kruskal

R:b.se da un vf initial de la care se pleaca

8.In ceea ce priveste implementarea recursive, care din urmatoarele afirmatii


este adevarata:

R:d.Se poate aplica numai pt rezolvarea unor probleme complexe, care nu


pot fi rezolvate prin implementarea iterative.

9.Fie graful G(V,E) cu 6 varfuri si multimea de muchii


E={(1,6);(1,4);(2,4);(2,3);(2,5)}.Identificati nodul ce poate fi ales ca radacina a
arborelui astfel incat fiecare nod care nu este de tip frunza sa aiba un nr.impar de
descendenti directi(fii)?

R:e.2

10.Fie G un graf arbore.Care dintre urmatoarele afirmatii sunt echivalente:

1)G este graf aciclic maximal

2)G este graf conex minimal

3)G este graf acyclic minimal

4)G este graf conex maximal

R:b.1,2

11.Verificarea conexitatii unui graf care este reprezentat prin matricea de


adiacenta se poate face utilizand:

1)alg Roy Floyd

2)parcurgerea in adancime

3)alg Dijkstra

4)parcurgerea in latime

5)alg Roy Warshall

R:a.2,4,5

12.Intr un graf,drumul Hamiltonian, reprezinta:

R:c.Un drum in care fiecare nod apare o singura data

13.Fie graful G(V,E) ,V={1,2,3,4,5,6,7},


E={(1,7,1),(1,2,2),(2,5,2),(2,3,3),(2,6,3),(2,7,3),(3,4,1),(3,5,2),(4,5,1),(5,6,3),(6,7
,5)}.Aplicand algoritmul lui Prim, care va fi costul arborelui obtinut plecand din
vf 2?

R:a.10

14.In cee ace priveste metoda Divide et Impera , care din urmatoarele afirmatii
nu este adevarata:
R:e.pt aceasta metoda , in general sunt definite subproblemele primitive a
caror solutie nu este cunoscuta.

15.Fie un arbore cu radacina R=3, nr de varfuri 8 si cu multimea de muchii


E={(1,3),(1,7),(2,5),(3,5),(3,8),(4,5),(4,6)}.Care este parcurgerea A-postordine
pt. acest arbore?

R:d.2,6,4,5,8,7,1,3;

21.Care dintre urmatoarele afirmatii legate de subprograme recursive nu este


adevarata: R: pot fi folosite numai pentru implementarea unor algoritmi
recursivi

22.Metoda Greedy este: R: o metoda rapida, de complexitate redusa, pentru


obtinerea unei solutii acceptabile nu neaparat cea buna.

23. Care dintre urmatoarele afirmatii nu este valabila pentru algoritmul lui
Kruskal: R: dintre arcele disponibile (care nu au fost analizate inca) se
alege arcul cu ponderea cea mai mica si care formeaza un ciclu prin
adaugarea la arbore.

24. Care dintre urmatoarele afirmatii legate de metoda Backtracking sunt


adevarate: R: 1. Este o metoda lenta 2. Este o metoda costisitoare 3. Este
o metoda de complexitate mare 4. Solutia se construieste element cu
element 5. Verificarea condititi de continuare garanteaza obtinerea unei
solutii rezultat

25. Algoritmul Dijkstra: R: calculeaza distantele si drumurile minime de la


un nod al unui graf la toate celelalte noduri din graf.
26. Care dintre afirmatii nu este adevarata: R: la recursivitatea directa apelul
recursiv se realizeaza prin intermediul mai multor functii care se apeleaza
circular

Probleme:

1.

#include<iostream>

using namespace std;

int maxim(int* pare, int s, int d)

int a, b, m;

if (s == d)

return pare[s];

else
{

m = (s + d) / 2;

a = maxim(pare, s, m);

b = maxim(pare, m + 1, d);

if (a > b)

return a;

else

return b;

int main()

int i, * v, * pare, n;

cout << "dati numarul de valori din vector" << endl;

cin >> n;

v = new int[n];

cout << "dati elementele din vector" << endl;

for (i = 0; i < n; i++)

cin >> v[i];

if (n % 2 == 0) pare = new int[n / 2];

else pare = new int[(n / 2) + 1];

for (i = 0; i < n; i = i + 2)

pare[i] = v[i];

int maxi = maxim(pare, 0, n - 1);


cout << "maximul este" <<' '<< maxi;

2.

#include <stdio.h>

#include <malloc.h>

int sub(int* v, int n) {


if ((n == 0) && (v[n] % 3 == 0))

return v[n];

//else if ((n == 0) && (v[n] % 3 != 0))

//return 0;

if (v[n] % 3 == 0)

return (v[n] + sub(v, n - 1));

else return sub(v, n - 1);

int main()

int* v;

int i, n;

scanf_s("%d", &n);

v = (int*)(malloc(n * sizeof(int)));

for (i = 0; i < n; i++)

scanf_s("%d", &v[i]);

//sub(v, n);
printf("%d", sub(v, n));

return 0;

3.

#include <fstream>

#include <iostream>

using namespace std;

void citeste(int &n, int &m, int ad[21][21]){

int i, x, y;

ifstream f ("lista.txt");
f >> n >> m;

for (i=1; i<=m; i++){

f >> x >> y;

ad[x][y]=1;

f.close();

void imp2(int n, int ad[21][21], int &l, int v[11]){

int i, j, *grad{new int[n+1]{}};

for (i=1; i<=n; i++)

for (j=1; j<=n; j+=2)

if (ad[i][j]==1)

grad[j]++;

l=0;

for (i=1; i<=n; i+=2)

if (grad[i]==2){

l++;

v[l]=i;

int main(){

int i, j;
int n, m, ad[21][21];

for (i=1; i<=n; i++)

for (j=1; j<=n; j++)

ad[i][j]=0;

citeste(n, m, ad);

for (i=1; i<=n; i++){

for (j=1; j<=n; j++)

cout << ad[i][j] << ' ';

cout << '\n';

int l, v[11];

imp2(n, ad, l, v);

return 0;

}
4.

#include <iostream>

using namespace std;

void suma5(int n, int *v, int &s){

if (n==1){

if (v[0]%10==5)

s+=v[0];

else{

if (n%2==0){

suma5(n/2, v, s);

suma5(n/2, v+n/2, s);


}

else{

suma5(n/2, v, s);

suma5(1+n/2, v+n/2, s);

int main(){

int n=7, a[]={4, 8, 15, 2, 35, 9, 5};

int s=0;

suma5(n, a, s);

cout << s;

return 0;

}
5.

#include <iostream>

#include <stdlib.h>

using namespace std;

int maxsimum(int* a, int l, int r) {

if (l == r)

return a[l];

int m = (l+r)/2;

int u = maxsimum(a,l,m);

int v = maxsimum(a,m+1,r);

return u+v;

}
int main()

int n,i,m=0,k;

int *a,*b;

cin>>n;

a = (int*) malloc(n*sizeof(int));

for(i=0;i<n;i++)

cin>>a[i];

if (a[i]%2 == 0)

m++;

k=0;

b = (int*) malloc(m*sizeof(int));

for(i=0;i<n;i++)

if (a[i]%2 == 0)

b[k]=a[i];

k++;

cout << maxsimum(b,0,m-1) << endl;


}

#include <stdio.h>

void max_impar(int v[20], int n, int *max)

if (n >= 0)

if (v[n] % 2 == 1 && v[n] > *max)

*max = v[n];

max_impar(v, n - 1, max);

}
int main()

int v[] = { 6,20,17,15,4 };

int max = v[4];

max_impar(v, 3, &max);

printf("Maximul impar din vector este..: %d", max);

return 0;

7.

#include <stdio.h>
void suma_minima(int v[20], int n, int *s)

int i = 0;

while (v[i] <= 0 && i <= n)

*s = *s + v[i++];

int main()

int v[] = { -8,-5,-3,2,6,7 };

int s = 0;

suma_minima(v, 5, &s);

printf("Suma minima din vector este..: %d", s);

return 0;

}
8.

#include <stdio.h>

void construire(int a[20][20], int *noduri, int *muchii)

FILE *f;

f = fopen("graf.txt", "r");

if (f == NULL) printf("ERR");

int n, m, x, y;

fscanf(f, "%d", &n);

fscanf(f, "%d", &m);

for (int i = 1; i <= n; i++)

for (int j = 1; j <= n; j++)

a[i][j] = 0;

for (int i = 1; i <= m; i++)

fscanf(f, "%d", &x);

fscanf(f, "%d", &y);


a[x][y] = 1;

*noduri = n;

*muchii = m;

fclose(f);

void afisare(int a[20][20], int n)

int i, j;

for (i = 1; i <= n; i++)

for (j = 1; j <= n; j++)

printf("%d ", a[i][j]);

printf("\n");

void grad_interior(int a[20][20], int n, int v[], int *minim, int *k)

int i = 2, v2[20];

*k = 0;

int min; *minim = n;

while (i <= n)

min = 0;

for (int j = 1; j <= n; j++)

min = min + a[j][i];

v2[i++] = min;

if (min < *minim)


*minim = min;

for (i = 2; i <= n; i += 2)

if (v2[i] == *minim)

v[*k++] = i;

int main()

int a[20][20], n, m, v[20], minim, k;

construire(a, &n, &m);

afisare(a, n);

grad_interior(a, n, v, &minim, &k);

printf("Gradul minim interior al unui varf din graf este %d\n", minim);

printf("Varfurile cu aceasta proprietate sunt: ");

for (int i = 0; i <= k; i++)

printf("%d ", v[i]);

return 0;

Iar grile:

1. Care dintre urmatoarele afirmatii legate de metoda Backtracking sunt


adevarate:
R: - Este o metoda lenta
- Este o metoda costisitoare
- Este o metoda de complexitate mare
- Solutia se construieste element cu element
- Verificarea conditiei de continuare NU garanteaza obtinerea unei solutii
rezultat
2. Alg. Dijkstra :
R: calculeaza distantele si drumurile minime de la un nod al unui graf la toate
celelalte noduri din graf

3. Fie functia :
int calc (int n) calc(3)
{ rez=2*calc(2)+calc(1)=7
int rez ; =3 =1
if (n==0 || n==1)
rez=1; calc(2)
else rez=2*calc(1)+calc(0)=3
rez=2* calc(n-1)+calc(n-2); =1 =1
return rez;
}

Ce va returna apelul calc(3)?


R: 7

4. Care dintre urmatoarele afirmatii NU corespunde metodei Greedy :


F: problema se descompune in problem de complexitate mai mica sau problem
cu rezolvare imediata
A: problema poate fi imaginata ca o mult A cu n elemente
A: pot exista mai multe submult. diferite acceptabile (solutii posibile), dintre care
una este considerata solutie optima pe baza unui criteriu care trebuie maximizat
(minimizat)
A: o solutie posibila este o multime (B) care indeplineste o conditie data (B este
acceptabila)
A: se repeat selectarea unui elem. din mult. A de maxim n ori (nr. de elem.
corespunzator mult. A)

5. Un graf G este arbore daca G este:


R: aciclic si conex

6. Prin recursivitate indirecta (mutuala) se intelege:


R: un subprogram A apeleaza un alt subprogram B, iar subprog. B apeleaza
subprog. A
7. Fie graful G=(V,E) , cu V={1,2,3,…,9} ,
E={(1,2);(1,4);(2,7);(2,8);(3,6);(3,9);(4,5);(4,7);(7,8)} si =4 .
Ordinea in care sunt vizitate varfurile corespunzatoare parcurgerii in adancime DF
este:

R: 4,1,2,7,8,5

8. Care dintre urmatoarele afirmatii legate de sortarea crescatoare prin


interclasarea unei secvente de nr. reale este adevarata :
R: utilizeaza metoda Divide et Impera

9. Determinarea arborelui partial de cost minim se poate face folosind:


R: - Alg. lui Prim
- Alg. lui Kruskal

10. Un algoritm de tip backtracking genereaza, in ordine, toate permutarile unei


multimi cu 4 elem. Primele 3 solutii generate sunt: 1234 , 1243 , 1324 . Care
este a 4-a solutie generata de acest algoritm ?

R: 1342

11. Care dintre afirmatiile urmatoare referitoate la Divide et Impera NU este


adevarata
F - descompune problema in problem de complexitate mai mica pt. care se
apeleaza alte metode de descompunere diferite de metoda de descompunere
initial
A - implementarea este realizata de obicei prin subprograme recursive
A – descompune problema in problem de complexitate mai mica de acelasi tip cu
problema initiala sau in probleme cu rezolvare imediata (primitive)
A – combina (asambleaza) solutiile problemelor obtinute in urma decompunerii
pt. a obtine Solutia problemei initiale
A – sunt definite subprograme primitive (conditii terminale) a caror solutie este
,,cunoscuta” sau data.
12. Subprogramul :
int cauta (float v[] , int n , float val)
{
int rez;
if(n==0)
rez=-1;
else
if (v[n-1]==val)
rez=n-1;
else
rez=cauta(v, n-1, val);
return rez;
}

calculeaza:
R: ultima aparitie a unei valori date (val) intr-un vector

13. Care dintre urm. afirmatii referitoare la arborele orientat sunt adevarate?
R: -graful suport este conex
- graful suport este aciclic
- este graf asimetric
- este arbore directionat cu radacina

1. In configuratia urmatoare (specifica metodei backtracking):

Este prezentata operatia de:


R: incercare esuata

2. Reteaua strazilor auto din Bucuresti se reprezinta correct cu ajutorul


structurilor de date :
R: graf orientat

14. Care dintre urmatoarele afirmatii legate de subprogramele recursive sunt adevarate:
A – pot fi bazate pe o metoda de tip reducere
A – pot fi bazate pe o metoda de tip descompunere
A - pot fi folosie in rezolvarea problemelor care utilizeaza metoda Divide et
Impera

A- pot fi folosite la implementarea algoritmilor de parcurgere a arborilor


F – nu pot fi scrise pt. implementarea algoritmilor iterative

15. Fie subprogramul :


void Test (int I, int n) *Test(2,5)+ i=1
{ **Test(3,5)++ i=2
printf(“*”); ***Test(4,5)+++ i=3
if(i<n) ****Test(5,5)++++ i=4
Test (i+1,n);
printf(“+”);
}
Ce va afisa apelul Test (1, 5) ?

R: * * * * * + + + + +

16. Fie graful G=(V,E) cu V={1,…,6} , E+{(1,2);(1,4);(2,4);(4,5);(5,6)} si =2 . Ordinea in


care sunt vizitate varfurile corespunzator parcurgerii in latime BF este:
R: 2,1,4,5,6

17. Care dintre afirmatiile urmatoare NU este valabila pt. Alg. lui Kruskal :
F – dintre arcele disponibile se allege arcul cu ponderea cea mai mica si care
formeaza un ciclu prin adaugarea la arbore
A- determina arborele partial de cost min
A- dintre arcele disponibile care nu au fost analizate inca se allege arcul cu
ponderea cea mai mica si care nu formeaza un ciclu prin adaugarea la arbore
A – mult. muchiilor selectate E0 se initializeaza la inceput cu mult. vida

A – determinan n-1 muchii , unde n este nr de varfuri

18. Metoda Greedy este:


R: o metoda rapida, de complexitate redusa, pt obtinerea unei solutii
acceptabile, nu neaparat cea mai buna

19. Fie mult. de litere {a,b,c,d} . Se genereaza permutarile acestei mult. Precizati care sunt
solutiile anterioara si urmatoare solutiei cabd
R: bdca si cadb

20. Fie functia :


int s(int n) { s(0)
{ rez=0
int rez; {s(1)
int (n==0) rez=1+s(0)=1
rez=0; {s(2)
else rez=2+s(1)=3
rez=n+s(n-1); {s(3)
return rez; rez=3+s(2)=6
}

In cazul apelului s(3) , functia va returna:


R: 6

21. Care dintre urm. afirm. referitoare la metoda Divide et Impera sunt adevarate?
A – este utilizata in rezolvarea unor problem complexe
A – implementarea este realizata de obicei prin subprogram recursive
A – se aplica pt problem care pot fi descompuse in problem cu complexitate mai
mica
A – rezolvarea problemelor rezultate in urma descompunerii este mai usoara
decat rezolvarea intregii problem initiale
F – pt fiecare dintre problemele rezultate in urma descompunerii se aplica un
procedeu diferit de descompunere

22. Fie graful G=(V,E) cu V={1,2,…7} , E={(1,4);(1,5);(2,4);(3,6);(4,7)} si v0=2 . Ordinea in


care sunt vizitate vf. corespunzatoare parcurgerii in latime BF este:
R: 2,4,1,7,5
23. Care dintre urm. afirmatii NU este adevarata:
F- la recursivitatea directa, apelul recursiv se realizeaza prin intermediul mai
multor functii care se apeleaza circular

24. Algoritmul prezentat determina:


R: arbore partial de cost minim (alg. Prim)

E0 se initializeaza ca mult. vida


Alege un vf initial v0 apartine lui V , A={v0} , B=V-A
Repeta de n-1 ori
Alege muchia e=(u,v) cu cea mai mica pondere a.i. u apartine lui S si v lui B
E0 <- E0ᵘ{e}
A <- Aᵘ{v}
B <- B-{v}

25. Un arbore directionat este:


R: un graf orientat asimetric cu graful support corespunzator lui de tip arbore

26. In configuratia urmatoare (specifica metodei backtracking):

R: atribuie si avanseaza

27. Care dintre urm. afirmatii referitoare la implementarea recursive e adev.:


R: usurinta in proiectare / programare (lungime mica a codului sursa)

28. Un graf reprezentat prin matrice de adiacenta poate fi verificat daca este conex prin
urm. metode:
R: - folosind parcurgerea in adancime
-folosind parcurgerea in latime
-folosind matricea existentei drumurilor

29. Secventa:
for (inc=n/2;inc>0;inc=inc/2)
for(i=inc;i<n;i++)
for(j=i-inc;;(j>=0)&&(v[j]>v[j+inc]);j=j-inc)
{
a=v[j]
v[j]=v[j+inc];
v[j+inc]=a;
}

Realizeaza: sortarea elem. unui vector prin metoda Shell

30. Daca G este un graf neorientat, conex si aciclic, atunci graful:


R: este arbore

31. Fie arborele din figura. Parcurgerea prin metoda A-postordine (reprezentarea Fiu-
Frate) determina urm. evolutie:
R: 5,9,10,11,12,13,6,7,2,3,8,4,1

32. Care dintre urm. afirm. legate de subprograme recursive NU este adevarata:
R: pot fi folosite numai pt. implementarea unui alg. recursive

33. Un alg. de tip backtracking genereaza, in ordine, toate permutarile unei mult. cu 5
elem. Primele 4 solutii generate sunt: 12345, 12354, 12435, 12453. Care este a 5-a
solutie generate?
R: 12534

34. Intr-un graf neorientat G notam cu n nr. de vf. si cu m nr. de muchii. Daca graful este
arbore, atunci intre n si m exista urm. relatie matematica:
R: n=m+1

35. Care dintre urm. operatii NU fac parte din operatiile specific metodei optimului local:
R: -construirea unui element candidat x
- eliminarea elem. x selectat din Solutia problemei
36. In configuratia urm. (specifica met. backtracking):

R: revenire dupa construirea unei solutii

37. Fie multimea de litere {a, b, c, d}. Se genereaza permutarile acestei multimi, Precizati
care sunt solutiile anterioara si urmatoare solutiei cabd.
R:bdca sic dab
38. Fie graful G=(V,E) cu V={1,…,7} , E+{(1,4);(1,5);(2,4);(3,6);(4,7)} si v_0=2 . Ordinea in
care sunt vizitate varfurile corespunzator parcurgerii in latime BF este:
R: 2, 4, 1, 7, 5

39. Care din urmatoarele afirmatii NU este adevarata:


a) Un algoritm iterativ sau recursiv poate fi implementat printr-un subprogram
iterativ sau recursive
b) Un subprogram recursive genereaza (cel putin) un apel catre el insusi.
c) La recursivitatea directa, apelul recursiv se realizeaza prin intermediul mai
multor functii care apeleaza circular.
d) Recursivitatea directa poate fi simpla sau multipla.
e) Fiecare apel recursive trebuie aplicat unei probleme mai simple decat in pasul
anterior.
40. Algoritmul prezentat:
 E_0 se initializeaza ca multime vida
 Alege un varf initial V_0 ∈V, A={V_0}, B=V-A
 Repeta de n-1 ori
 Alege muchia e=(u,v) cu cea mai mica pondere astfel incat u ∈A si v ∈B
 Ʋ{e}
 Ʋ{v}
 Ʋ{v}
Determina:
R:arborele partial de cost minim (algoritmul lui Prim)
41. Un graf neorientat G contine un arbore partial daca si numai daca G este:
R: conex

42. Un arbore directionat este:


R: un graf orientat asimetric cu graful support corespunzator lui de tip arbore
43. Fie graful G=(V,E) , cu V={1,2,3,…,8} , E={(1,2);(1,4);(1,8);(2,3);(2,6);(2,7); (3,5); (4,5);
(6.7); (7,8)} si v_0=3 .
Ordinea in care sunt vizitate varfurile corespunzatoare parcurgerii in adancime DF
este:
R:3,3,1,4,5,8,7,6
44. Intr-un graf, prin circuit elementar se intelege:
R: un drum in care fiecare nod apare o singura data, cu exceptia celui final,care
coincide cu cel initial
45. Fie graful G=(V,E) , cu V={1,2,3,…,6} , E={(1,4);(1,6);(2,3);(2,4);(2,5);} Care este nodul ce
poate fi ales ca radacina a arborelui astfel incat fiecare nod care nu este de tip frunza
sa aiba un numar impar de descendenti directi (fii)?
R:2
46. Fie functia: int f (int n) { int rez; if (n <= 0) return 0; else return 2*f(n-1)+n} Ce va
returna apelul f(5)?
R:57
47. Utilizandu-se metoda backtracking pentru a genera toate permutarile de 5 obiecte,
dupa identificarea solutiei 2-1-5-4-3 care va fi urmatoarea solutie identificata:
R:2-3-1-4-5
48. Fie graful G=(V,E), V={1,2..7}, E={(1,2,2), (1,7,4), (2,3,4), (2,5,5), (2,6,6), (2,7,3), (3,4,3)
(3,5,5),(4,5,..), (5,6,3), (6,7,5)}. Aplicand algoritmul lui Prim, care va fi rezultatul
obtinut plecand de la varful 2?
R: 20
49. Fie graful G=(V,E), graf cu V={1,2..8}, E={(1,2,), (1,,4), (1,8),(2,3,),(2,6,), (2,7),
(3,5),(4,5), (6,7) (7,8)} v_0=1. Ordinea in care sunt vizitate varfurile corespunzator
parcurgerii in adancime DF/ in latime BF este:
BF: 12443675
DF 12354678

50. In configuratia urmatoare (specifica metodei backtracking) este prezentata operatia


de:
R: atribuie si avanseaza

51. In configuratia urmatoare (specifica metodei backtracking) este prezentata operatia


de:

R: revenire dupa construirea


unei solutii

52. Care din urmatoarele afirmatii referitoare la implementarea recursiva este adevarata:
 consum mic de resurse de memorie
 timp de executie mic
 usurinta in proiectare/programare (lungimea mica a codului sursa)
 scaderea numarului de operatii
 se poate aplica numai pentru rezolvarea unor probleme complexe, care
nu pot fi rezolvate prin implementare iterativa
53. Fie functia:
int f (int n)
{ int rez;
if (n == 0) rez = 0;
else if (n % 2) rez = n + f (n – 1);
else rez =n / … 1);
return rez; }
Ce va returna apelul f(4)?
R:7
54. Fie functia:
int s(int n)
{ int rez;
if (n == 0) rez = 0;
else rez = n + s(n – 1); return rez; }.
In cazul apelului s(3), functia va returna valorea:
R:6
55. Care din urmatoarele afirmatii referitoare la metoda Divide et Impera sunt adevarate?
 este utilizata in rezolvarea unor probleme complexe
 implementarea este realizata de obicei prin subprograme recursive
 se aplica pentru problemele care pot fi descompuse in probleme cu
complexitate mai mica
 rezolvarea problemelor rezultate in urma descompunerii este mai
usoara decat rezolvarea intregii probleme initiale
 pentru fiecare din problemele rezultate in urma descompunerii se
aplica un procedeu diferit de descompunere
56. Fie graful ponderat G=(V,E), graf cu B varfuri si urmatoarele muchii (varf, varf, cost).
E={(1,2,2}, (1,4,3), (1,5,4), (1,7,2), (1,8,3), (2,3,1), (2,5,3), (2,8,1), (3,4,2), (4,5,1),
(5,6,2,) (6,7,3), (7,8,4)}. In cee ace priveste costurile, care va fi rezultatul aplicarii
algoritmului Dijkstra plecand din varful 7?

R: [2,4,5,5,5,3,0,4]
57. Fie graful G=(V,E), V={1,2..7}, E={(1,2,3), (1,4,3), (1,7,4), (2,3,4), (2,5,5), (2,6,6), (2,7,3)
(3,4,4),(3,5,5), (4,5,7), (5,6,3), (6,7,5), }. Aplicand algoritmul lui Prim, care va fi
rezultatul obtinut plecand de la varful 2?
R: 22
58. Fie graful G=(V,E), V=(A,B,C,D,E,F), SI E={ (A,B), (B.E), (B,F), (C,E), (C,D)}. Care este
nodul ce poate fi ales ca radacina a arborelui astfel incat fiecare nod care nu este de
tip frunza sa aiba un numar impar de descendenti directi (fii)?
R: B
59. Fie graful G=(V,E), V=(A,B,C,D,E,F), SI E={ (A,E), (B.D), (B,E), (C,D), (E,F)}. Care este
nodul ce poate fi ales ca radacina a arborelui astfel incat fiecare nod care nu este de
tip frunza sa aiba un numar impar de descendenti directi (fii)?
R: E
60. Daca in cadrul unui arbore se elimina o muchie atunci se obtine:
R: un graf neconex
61. Ce reprezinta un graf partial al unui graf neorientat?
R: un graf din care se elimina anumite muchii
62. Fie urmatoarea functie:
Int f (int n)
{ if (n==0)
Return 0;
Else return f(n-1)+2*n;}
Care va fi rezultatul pt apelul functiei f(5) si f(4)
R: 30-f(5)
20-f(4)
63. Ce reprezinta un subgraf al unui graf orientat?
R: un graf din care se elimina noduri si muchii adiacente
64. Utilizandu-se metoda backtracking pentru a genera toate permutarile de 5 obiecte,
dupa identificarea solutiei 2-4-5-3-1 care va fi urmatoarea solutie identificata:
R: 2-5-1-3-4
65. Care din urmatoarele afirmatii legate de subprogramele recursive NU este adevarata:
R: pot fi folosite numai pentru implementarea unor algoritmi recursivi
66. Fie graful G=(V,E) cu V={1,…,7} , E={(1,2);(1,4);(2,3);(2,6);(2,7), (3.5), (4,5)(6.7)} si
v_0=6 . Ordinea in care sunt vizitate varfurile corespunzator parcurgerii in latime BF
este:
R: 26,2,7,1,3,4,5
67. Se considera un graf neorientat cu 8 varfuri si 6 muchii care este alcatuit din 2
componente conexe. Care este gradul maxim pe care il poate avea un nod?
R: 5
68. Utilizandu-se metoda backtracking pentru a genera toate permutarile de 5 obiecte,
dupa identificarea solutiei 2-3-5-4-1 care va fi urmatoarea solutie identificata:
R: 2-4-1-3-5
69. Fie graful G=(V,E) cu V={1,2…,8} , E={(1,2);(1,4);(1,8);(2,3);(2,6), (2.7), (3.5,), (4.5)
(6.7), (7.8) } si v_0=1 . Ordinea in care sunt vizitate varfurile corespunzator parcurgerii
in latime BF este:
R: 2,1,3,6,7,4,8,5

70. Fie graful G=(V,E) cu V={1,2…,8} , E={(1,2);(1,4);(1,8);(2,3);(2,6), (3.5,), (4.5) (5,6),


(6.7), (7.8) } si v_0=5 . Ordinea in care sunt vizitate varfurile corespunzator parcurgerii
in adancime DF este:
R:5,3,2,1,4,8,7,6
71. Un graf G este arbore daca G este :
R: aciclic si conex

72. Parcurgerea generalizata a unui graf se face:


R: in adancime sau in latime

Grile 2019

Grila 1-h18
1. Fie graful ponderat G = (V,E) graf cu 8 vârfuri și următoarele muchii (vârf vârf cost),
E= {(1 2 2), (1 4 3), (1 5 4), (1 7 2), (1 8 3), (2 3 1) ,(2 5 3) ,(2 8 1), (3 4 2), (4 5 1) (5
6 2), (6 7 3), (7 8 4)}.In ceea ce privește costurile, care va fi rezultatul aplicării
algoritmul lui Dijkstra plecând din vârful 7 ?
R: B [2 4 5 5 5 3 0 4 ]
2. In ceea ce privește metoda divide et impera, care din următoarele afirmații sunt
adevărate:
R: a)implementarea este realizată de obicei pentru programe recursive
b)descompune problemă în probleme de complexitate mai mică de același timp
cu problemă inițială sau în probleme cu rezolvare imediată
c)combină soluțiile problemelor obținute în urma descompunerii pentru a obține
soluția problemei inițiale
d) sunt definite subprograme primitive a caror solutie este cunoscută sau dată .

3. Fie graful G =(V,E) , V= {l 2 3 4 5 6 7} , E ={ (1 2 3), (1 7 4), (2 3 4), (2 5 5), (2 6


6), (2 7 3), (3 4 4), (3 5 5),(4 5 7), (5 6 3), (6 7 5), cu(vârf vârf cost). Aplicând
algoritmul lui Prim care va fi rezultatul obținut plecând din vârful 2 ? R: 22

4. Fie graful G =(V,E) , V= {a b c d e f} și E= {(a b) (b e) (b f ) (c e ) (c d). Care este


nodul ce poate fi ales că rădăcina a arborelui astfel încât fiecare nod care nu este de
tipul frunza sa aiba un număr impar de descendenți direcți . R: B

5. Se consideră un graf neorientat cu 8 vârfuri și 6 muchii care este alcătuit din două
componente conexe. Care este gradul maxim pe care îl poate avea un nod? R: 5

6. Utilizând metoda backtracking pentru a genera toate permutările de 5 obiecte, după


identificarea solutiei 2-3-5-4-1 care va fi identificați următoarea soluție identificată?
R: 2-4 -1-3-5

7. Fie graful G =(V,E) , V={1 2 3 4 5 6 7 8} și E= {(1 2)(1 4) (1 8) (2 3) (2 6) (2 7) (3 5)


(4 5) (6 7) (7 8) și v 0 = 1 .Ordinea în care sunt vizitate vârfurile corespunzătoare
parcurgerii în lățime BF este? R: 2 1 3 6 7 4 8 5

8. Fie graful G =(V,E) , V={1 2 3 4 5 6 7 8} și E= {(1 2)(1 4) (1 8) (2 3) (2 6) (2 7) (3 5)


(4 5) (6 7) (7 8) și v 0 = 5 .Ordinea în care sunt vizitate vârfurile corespunzătoare
parcurgerii lor în adâncime DF este? R: 5 3 2 1 4 8 7 6 9

9. Fie următoarea funcție int f (int n) {if (n==0) return 0; else return f (n -1) + 2 * n; }
Care va fi rezultatul pentru apelul funcției f (5)? R:30

10. Ce reprezintă un subgraf al unui graf neorientat ? R: un graf din care se elimină
noduri și muchii adiacente.

Grila 2-h1

1. Una Care din următoarele afirmații referitoare la metoda divide et impera nu este
adevărată? R: descompune problema in probleme de complexitate mai mică
pentru care se apelează altă metodă de descompunere diferite de metoda
descompunerii inițială.
2. Subprogramul int caută (float v[], int n , float val) {int rez ; if (n==0) rez=-1; else
if(v[n-1] ==val) rez=n-1; else rez=cauta(v,n-1,val), retutn rez) calculeaza ? R:ultima
apariție a unei valori date val intr-un vector.
3. Care din următoarele afirmații referitoare la arborele orientat sunt adevărate? R :a)
graful suport este conex b) graful suport este aciclic c) este graf asimetric d) este
arbore direcționat cu rădăcină.
4. In configurația următoare specifică metoda backtracking este prezentată operația de
R: încercare eșuată.
5. Rețeaua străzilor auto din București reprezintă corect cu ajutorul structurii de date :
R: graf orientat
6. Care din următoarele afirmații legate de subprogramele recursive sunt adevărate ? R:
A)Pot fi bazate pe o metodă de reducere b)pot fi bazate pe o metodă de tip
descompunere C)pot fi folosite rezolvarea problemelor care utilizează metoda
divide et impera d) pot folosite în implementarea algoritmilor de parcurgere a
arborilor.
7. Fie subprogramul void Test(int i, int n ){printf(„*”); if (i<n) Test(i+1,n); printf („+”).
Ce va fișa apelul test (1,5) R: *****+++++
8. Fie graful G=(V,E) cu V={1,2,3,4,5,6} E={(1 2) (1 4) (2 4) (4 5) (5,6) si
v0=2.Ordinea în care sunt vizitate varfurile corespunzătoare parcurgerii in lățime BF
este? R: 2 1 4 5 6
9. Care din următoarele afirmații nu este valabilă pentru algoritmul lui kruskal? R:
dintre arcele disp se alege arcul cu ponderea cea mai mica si care formeaza ciclu.
10. Metoda greedy : R: este o metodă rapidă de complexitate redusă, prin obt unei sol
acceptabile neaparat cea mai buna.

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