Documente Academic
Documente Profesional
Documente Cultură
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
f. atribuie si avanseaza
g. incercare esuata
h. revenire dupa construirea unei solutii
i. revenire
j. nu exista o astfel de operatie
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
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
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
1.Fie un grav complet cu 10 varfuri. Care este nr. De muchii pentru acest graf?
R:c.45
R:b.4
R:a.mutuala
Fiu: [7,0,5,6,2,0,0,0]
Frate: [0,4,0,0,8,0,0,1]
R:e.3
R:c.9
R:e.2
R:b.1,2
2)parcurgerea in adancime
3)alg Dijkstra
4)parcurgerea in latime
R:a.2,4,5
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.
R:d.2,6,4,5,8,7,1,3;
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.
Probleme:
1.
#include<iostream>
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;
cin >> n;
v = new int[n];
for (i = 0; i < n; i = i + 2)
pare[i] = v[i];
2.
#include <stdio.h>
#include <malloc.h>
return v[n];
//return 0;
if (v[n] % 3 == 0)
int main()
int* v;
int i, n;
scanf_s("%d", &n);
v = (int*)(malloc(n * sizeof(int)));
scanf_s("%d", &v[i]);
//sub(v, n);
printf("%d", sub(v, n));
return 0;
3.
#include <fstream>
#include <iostream>
int i, x, y;
ifstream f ("lista.txt");
f >> n >> m;
f >> x >> y;
ad[x][y]=1;
f.close();
if (ad[i][j]==1)
grad[j]++;
l=0;
if (grad[i]==2){
l++;
v[l]=i;
int main(){
int i, j;
int n, m, ad[21][21];
ad[i][j]=0;
citeste(n, m, ad);
int l, v[11];
return 0;
}
4.
#include <iostream>
if (n==1){
if (v[0]%10==5)
s+=v[0];
else{
if (n%2==0){
suma5(n/2, v, s);
else{
suma5(n/2, v, s);
int main(){
int s=0;
suma5(n, a, s);
cout << s;
return 0;
}
5.
#include <iostream>
#include <stdlib.h>
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++;
#include <stdio.h>
if (n >= 0)
*max = v[n];
max_impar(v, n - 1, max);
}
int main()
max_impar(v, 3, &max);
return 0;
7.
#include <stdio.h>
void suma_minima(int v[20], int n, int *s)
int i = 0;
*s = *s + v[i++];
int main()
int s = 0;
suma_minima(v, 5, &s);
return 0;
}
8.
#include <stdio.h>
FILE *f;
f = fopen("graf.txt", "r");
if (f == NULL) printf("ERR");
int n, m, x, y;
a[i][j] = 0;
*noduri = n;
*muchii = m;
fclose(f);
int 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;
while (i <= n)
min = 0;
v2[i++] = min;
for (i = 2; i <= n; i += 2)
if (v2[i] == *minim)
v[*k++] = i;
int main()
afisare(a, n);
printf("Gradul minim interior al unui varf din graf este %d\n", minim);
return 0;
Iar grile:
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;
}
R: 4,1,2,7,8,5
R: 1342
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
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
R: * * * * * + + + + +
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
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
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
R: atribuie si avanseaza
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;
}
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):
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
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
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ă .
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
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.