Sunteți pe pagina 1din 16

B 1.

Fie secventa Java


int x = 1, y, z = 3,
t;
x += y = z += t = 5;
Atunci:
a) x=8,y=9,z=9,t=5
b) x=9,y=8,z=8,t=5
c) x=5,y=9,z=9,t=8
d) x=9,y=5,z=5,t=8

B 2. Executia programului Java


class T1 {
public static void main(String[] a){
int x = 5;
int y = (x = 4)*x;
System.out.println(y);
}
}
va afisa:
a) 20
b) 16
c) 5
d) 4

A 3. Se considera operatia de impartire in virgula mobila (in limbajul Java).


Daca unul dintre operanzi este NaN atunci rezultatul este NaN
a) Adevarat
b) Fals

B 4. In Java, metoda clone() a clasei Object


a) creeaza un obiect nou al clasei folosind constructorul implicit
b) creeaza si returneaza o copie a obiectului curent
c) returneaza codul asociat constructorului implicit
d) testeaza daca obiectul specificat este o clona a obiectului curent

5. In Java, numarul nivelurilor de acces la membrii unei clase este


C a) 1
b) 3
c) 4
d) 2

6. Daca doua atribute cu acelasi nume sunt mostenite de o interfata Java atunci
B se obtine:
a) mostenire multipla
b) ambiguitatea atributului
c) clonarea structurilor de date
7. Numarul metodelor implementate de o interfata Java este:
A a) 0
b) 1
c) Oricate sunt necesare

B 8. Daca x este de double


tip
numai daca x este
(in Java) atunci rezultatul x != x este true daca si

a) +0.0
b) NaN
c) -0.0

B 9. Pentru a obtine o reprezentare a adresei interne a unei variabile obiect (in


Java) se utilizeaza
a) metoda getClass() din clasa Class
b) metoda hashCode() din clasa Object
c) operatorul &
d) metoda getName() din clasa Class

A 10. Orice obiect Java poate fi convertit la tipul String.


a) Adevarat
b) Fals

A 11. In Java este obligatorie definirea a cel putin unei clase.


a) Adevarat
b) Fals

12. Derivarea unei clase Java se va specifica folosind cuvantul cheie


B
a) super
b) extends
c) this

C 13. Numarul superclaselor clasei Object este:


a) 1
b) infinit
c) 0

14. O metoda Java definita in alt limbaj de programare este o metoda


B a) abstracta
b) nativa

15. O metoda declarata private este accesibila subclaselor din acelasi pachet.
B a) Adevarat
b) Fals
16. Un fir de executare Java este
C a) o instanta a unei clase derivate din clasa Thread
b) o instanta a unei clase care implementeaza interfata Runnable
c) fie un obiect al unei clase a carei superclasa este clasa Thread, fie un obiect al unei clase
d) care implementeaza interfata Runnable

17. Un fir de executare Java poate fi pus fortat in coada de asteptare (pentru a intra in executare)
C folosind metoda
a) start()
b) stop()
c) yield()
d) exit()

18. Metoda destroy()


B a) elimina, din sistem, firul de executare si elibereaza toate resursele care ii fusesera alocate.
b) distruge firul de executare fara a face dealocarile necesare
c) trece firul de executare in starea blocat

19. Java implementeaza conceptul de grup de fire de executare utilizand


A a) clasa ThreadGroup
b) clasa Thread
c) interfata Runnable

20. In Java, cuvantul cheie syncronized se refera la


C a) sincronizarea comunicarii intre firele de executare
b) specificarea datelor care vor fi accesibile tuturor firelor de executare
c) excluderea mutuala
d) proprietatea de continuitate

21. Metoda care se suprascrie la crearea unui fir de executare Java este
B a)_ start()
b) run()
c) main()

B 22. In Java, un fir de executare terminat poate fi repornit folosind start().


a) Adevarat
b) Fals
23. In Java, pentru crearea unui fir de executare se utilizeaza
B a) functia fork()
b) operatorul new
c) functia init()
24. Un fir de executare Java trece in starea terminat atunci cand
D a) ultima actiune a metodei run() s-a incheiat
b) a fost apelata metoda stop()
c) a fost apelata metoda sleep()
d) una din afirmatiile a) sau b) este adevarata
25. In Java nu pot fi create fire de executare de tip daemon.
B a) Adevarat
b) Fals
26. In Java, pentru a crea un fir de executare de tip daemon, metoda setDaemon() este apelata
A a) inaintea metodei start()
b) dupa metoda start()
c) niciodata
27. In amfiteatrul Studio al Universitatii Spiru Haret din Bucuresti se organizeaza un festival, iar
D producatorii spectacolelor au informat managerul festivalului privind intervalul de timp [start,
final) in care fiecare spectacol se poate desfasura. Presupunem ca managerul festivalului dispune
de urmatoarele informatii:
n - numarul de spectacole propuse
start[i] - ora de la care poate incepe spectacolul i, i = 1, 2, ..., n
final[i] - ora pana la care trebuie sa se incheie spectacolul i, i = 1, 2, ..., n.
Nu exista pauza intre spectacole.
Managerul doreste o incarcare maximala a salii Studio. Presupunem ca ati scris un program C+
+/Java care sa fie util managerului in alegerea numarului maxim de spectacole, iar sala sa fie
utilizata cat mai mult timp. In testarea programului folositi urmatorul set de date
n=8
i = 1, start[1] = 2, final[1] = 5
i = 2, start[2] = 10, final[2] = 15
i = 3, start[3] = 7, final[3] = 9
i = 4, start[4] = 18, final[4] = 19
i = 5, start[5] = 10, final[5] = 12
i = 6, start[6] = 12, final[6] = 16
i = 7, start[7] = 7, final[7] = 8
i = 8, start[8] = 20, final[8] = 23
Care din urmatoarele variante de raspuns este oferit de programul dumneavoastra in ipoteza ca
acesta implementeaza corect metoda de selectie pentru utilizarea la maximum a salii pentru cat
mai multe spectacole.
a) 1, 3, 2, 4, 8
b) 1, 3, 7, 2, 5, 6, 8, 4
c) 1, 7, 3, 5, 2, 6, 4, 8
d) 1, 3, 5, 6, 4, 8

28. Fie n, m N*, n m si A = si B = multimi de numere intregi nenule.


C Se cere determinarea unei submultimi ordonate de indici astfel incat

valoarea expresiei sa fie maxima pentru . Presupunem ca ati


scris un program C++/Java care implementeaza corect strategia de rezolvare a problemei si ca
setul de date utilizat la testarea programului este:
n = 4,
m = 6,
A = {-5, -4, -3, 10}
si
B = {-2, 1, 2, 3, 4, 5}
Care este multimea de indici obtinuta de programul testat?
a) {1, 4, 5, 6}
b) {1, 2, 5, 6}
c) {1, 2, 3, 6}
d) {1, 3, 4, 6}
29. Se presupune ca un numar de n melodii care au lungimile (in unitati de timp) trebuie
E plasate intr-o lista care poate fi parcursa doar secvential (nu se poate asculta melodia i daca nu
au fost parcurse melodiile 1, 2, ..., i-1, i > 1). Se presupune ca probabilitatea de a asculta oricare
din melodii este 1/n.

Faceti parte din echipa care testeaza buna functionare a unui program pentru stabilirea ordinii in
care trebuie incluse melodiile in lista astfel incat timpul mediu pentru a ajunge la melodii sa fie
minim. Programul citeste n - numarul melodiilor, L[i] - lungimea melodiei i ( i = 1, 2, ..., n) si
afiseaza indicii melodiilor in ordinea in care se vor plasa in lista.

Presupunem ca setul de date folosit la testare este:


n = 10
i = 1, L[1] = 10
i = 2, L[2] = 8
i = 3, L[3] = 9
i = 4, L[4] = 7
i = 5, L[5] = 1
i = 6, L[6] = 4
i = 7, L[7] = 3
i = 8, L[8] = 5
i = 9, L[9] = 2
i = 10, L[10] =6
Programul trebuie sa afiseze:
a) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
b) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
c) 1, 3, 5, 7, 9, 2, 4, 6, 8, 10
d) 2, 4, 6, 8, 10, 1, 3, 5, 7, 9
e) 5, 9, 7, 6, 8, 10, 4, 2, 3, 1

30. Un sistem de operare unitasking trebuie sa execute n programe. Timpul necesar executarii
B fiecarui program este cunoscut si notat cu T[i], i = 1, 2, ..., n. Trebuie sa scrieti un planificator
de programe care citeste numarul programelor si durata acestora pentru ca apoi sa le incarce, in
memorie, pentru executare. Se presupune ca este posibil accesul direct la fisierul asociat fiecarui
program si se doreste ca timpul mediu petrecut de orice program, in memorie, sa fie minim.

Presupunem ca ati implementat strategia optima de planificare, planificatorul afiseaza corect


durata de executare a fiecaruia din programele selectate si ca setul de date pentru testarea
planificatorului este:
n=8
i = 1, T[1] = 10
i = 2, T[2] = 6
i = 3, T[3] = 8
i = 4, T[4] = 6
i = 5, T[5] = 5
i = 6, T[6] = 4
i = 7, T[7] = 9
i = 8, T[8] = 8

Lista duratelor de executare a programelor, afisata de catre planificatorul optimal, este:

a) 10, 6, 8, 6, 5, 4, 9, 8
b) 4, 5, 6, 6, 8, 8, 9, 10
c) 10, 9, 8, 8, 6, 6, 5, 4
d) 8, 9, 4, 5, 6, 8, 6, 10
31. In intervalul de timp [0, T] o echipa poate executa n lucrari, unde timpul de executare a fiecarei
C lucrari este acelasi. La un moment dat echipa intreaga lucreaza la o singura lucrare. Se
presupune ca seful echipei cunoaste atat castigul obtinut C[i], cat si termenul de finalizare F[i],
pentru fiecare lucrare i, i = 1, 2, ..., n. Se cere o selectie optimala a lucrarilor in sensul
maximizarii castigului obtinut. Se presupune ca pentru obtinerea selectiei optimale se va utiliza
un program C++/Java care trebuie testat pentru urmatorul set de date:
n = 10
i = 1, F[1] = 1, C[1] = 10
i = 2, F[2] = 3, C[2] = 9
i = 3, F[3] = 3, C[3] = 10
i = 4, F[4] = 6, C[4] = 8
i = 5, F[5] = 7, C[5] = 8
i = 6, F[6] = 7, C[6] = 9
i = 7, F[7] = 8, C[7] = 5
i = 8, F[8] = 8, C[8] = 7
i = 9, F[9] = 8, C[9] = 10
i = 10, F[10] = 8, C[10] = 12
Indicati multimea de indici care descrie selectia obtinuta folosind strategia optimala (aplicabila
pentru orice set de date) stiind ca echipa isi incheie activitatea la momentul T = 8.
a) 10, 3, 9, 6, 4, 5, 6, 7
b) 3, 4, 10, 9, 8, 7, 6, 5
c) 1, 3, 2, 4, 6, 5, 10, 9
d) 1, 2, 3, 4, 5, 6, 7, 8

32. Se considera graful din figura


A

Multimea muchiilor arborelui partial de cost minim obtinute prin metoda Greedy, este:
a) [u0, u1], [u3, u4], [u1, u3], [u2, u3], [u4, u5]
b) [u0, u1], [u3, u4], [u1, u2], [u2, u3], [u4, u5]
c) [u0, u1], [u1, u2], [u2, u3], [u3, u4], [u4, u5]
d) [u0, u1], [u3, u4], [u1, u3], [u2, u4], [u4, u5]

33. Se considera un graf neorientat cu 80 de noduri si 3160 muchii. Care este numarul de muchii
B care nu vor fi selectate de un program care implementeaza metoda Greedy pentru constructia
arborelui partial de cost minim
?
a) 79
b) 3081
c) 80
d) 3080
34. Se presupune ca un program a preluat la intrare un graf cun varfuri si m muchii pentru a obtine
B un arbore partial de cost minim. Din raportul de testare intocmit asupra programului dispunem
doar de informatia privind numarul de muchii selectate de program. Acesta este 11. Care trebuie
sa fi fost n - numarul de varfuri ale grafului considerat?
a) n = 11
b) n = 12
c) n = (combinari de 11 luate cate 2)
d) n = 11! (11 factorial)

35. Un graf neorientat este complet daca oricare doua noduri distincte ale sale sunt adiacente.
D Presupunem ca utilizati un program C++/Java care determina muchiile unui arbore partial al
grafului complet cu n varfuri. Care este numarul de muchii care nu sunt considerate de metoda
Greedy pentru a construi un arbore partial al grafului, daca n = 7?
a) 21
b) 7
c) 6
d) 15
36. Pentru a determina starile accesibile ale unui automat finit determinist se utilizeaza metoda
A a) Greedy
b) Backtracking
c) Programarii Dinamice
d) Divide et Impera
e) Branch and Bound

37. Se considera un graf neorientat G. Pentru a determina varfurile grafului G care fac parte din
E componenta conexa a varfului x (x reprezinta un parametru formal al functiei/metodei care
implementeaza algoritmul de rezolvare a problemei) se utilizeaza metoda
a) Backtracking
b) Programarii Dinamice
c) Divide et Impera
d) Branch and Bound
e) Greedy

38. Pentru a genera toate grafurile orientate, disticte, cu n varfuri, se utilizeaza metoda
D Backtracking. Aveti de testat un program care trebuie sa implementeze corect metoda de
rezolvare. Cate solutii trebuie sa genereze programul pentru n = 4?
a) 4
b) 24
c) 16
d) 4096

39. Fie A = {1, 2, ..., n} si B = {1, 2, ..., m}, unde n si m sunt numere naturale nenule, . Se
C doreste generarea tuturor functiilor injective . Ce metoda de elaborarea algoritmilor
trebuie folosita?
a) Metoda Branch and Bound
b) Metoda Divide et Impera
c) Metoda Backtracking
d) Metoda Programarii Dinamice
e) Metoda Greedy
40. Utilizand metoda backtracking se genereaza in ordine lexicografica cuvintele de cate patru
B litere din multimea A = {a, b, c, d, e}, cuvinte care nu contin doua vocale alaturate. Primele opt
cuvinte generate sunt, in ordine:
abab
abac
abad
abba
abbb
abbc
abbd
abbe.
Cate cuvinte generate incep cu litera b si se termina cu litera e?
a) 9
b) 15
c) 12
d) 20
41. Utilizand metoda backtracking se genereaza in ordine lexicografica cuvintele de cate patru
D litere din multimea A = {a, b, c, d, e}, cuvinte care nu contin doua vocale alaturate. Primele opt
cuvinte generate sunt, in ordine:
abab
abac
abad
abba
abbb
abbc
abbd
abbe.
Care este ultimul cuvant generat?
a) edcb
b) eeee
c) edde
d) eded

42. Utilizand metoda backtracking se genereaza in ordine lexicografica cuvintele de cate patru
A litere din multimea A = {a, b, c, d, e}, cuvinte care nu contin doua vocale alaturate. Primele opt
cuvinte generate sunt, in ordine:
abab
abac
abad
abba
abbb
abbc
abbd
abbe.
Care este penultimul cuvant generat?

a) edec
b) eded
c) edde
d) edcb
D 43. Folosind modelul combinarilor se genereaza numerele naturale cu cate trei cifre distincte din
multimea {1, 2, 3, 7}, numere cu cifrele in ordine strict crescatoare, obtinandu-se, in ordine:
123, 127, 137, 237. Daca se utilizeaza exact aceeasi tehnica pentru a genera numerele naturale
cu patru cifre distincte din multimea {1, 2, 3, 4, 5, 6, 7, 8}, cate numere generate au prima cifra
2 si ultima cifra 7?
a)_ 8
b) 3
c) 4
d) 6

44. Utilizand metoda backtracking sunt generate numerele de 3 cifre avand toate cifrele distincte si
A cu proprietatea ca cifrele aflate pe pozitii consecutive sunt de paritate diferita. Stiind ca primele
sase solutii generate sunt, in aceasta ordine, 103, 105, 107, 109, 123, 125, care este a zecea
solutie generata?
a) 145
b) 147
c) 230
d) 149

45. Utilizand metoda backtracking ati scris un program corect in C++/Java care genereaza toate
B numerele de cate n cifre (0<n<10), cifrele fiind in ordine strict crescatoare. Daca n este egal cu
7, cate numere genereaza programul dumneavoastra?
a) 9!
b) 36
c) 7!
d) 7

46. Un program C++/Java implementeaza corect tehnica backtracking pentru a genera, in ordine
lexicografica, toate sirurile de 5 cifre 0 si 1 cu proprietatea ca nu exista mai mult de doua cifre
B 0 pe pozitii consecutive. Primele 7 solutii generate sunt:
00100
00101
00110
00111
01001
01010
01011.
Care este a 8-a solutie generata de acest program?
a) 01110
b) 01100
c) 01011
d) 01101
47. Folosind strategia backtracking ati elaborat un program C++/Java care genereaza corect, in
C ordine crescatoare, toate numerele de n cifre folosind doar cifrele 3, 5 si 7. Daca pentru n = 5,
primele 5 solutii generate trebuie sa fie 33333, 33335, 33337, 33353, 33355, precizati care ar
trebui sa fie ultimele 3 solutii.
a) 77737, 77757, 77777
b) 77337, 77353, 77355
c) 77773, 77775, 77777
d)_ 77753, 77773, 77777

48. In timpul procesului de generare a permutarilor multimii {1, 2, ..., n} prin metoda
backtracking, in tabloul unidimensional x este plasat un element x[k] ( ). Acesta este
A considerat valid daca este indeplinita conditia:
a) x[k] {x[0], x[1], ..., x[k-1]}
b) x[k] {x[0], x[1], ..., x[n-1]}
c) x[k] x[k-1]
d) x[k] x[k-1] si x[k] x[k+1]

49. Algoritmul de generare a tuturor numerelor de 5 cifre nenule, fiecare avand cifrele ordonate
strict crescator, este echivalent cu algoritmul de generare a:
D a) submultimilor unei multimi cu 5 elemente
b) produsul cartezian a unor multimi de cifre
c) aranjamentelor de 9 elemente luate cate 5
d) combinarilor de 9 elemente luate cate 5

50. Se considera functia recursiva definita incomplet.


A
void s(int x){
cout << '*';
if (...) {
cout << '*';
s(x-1);
}
}

Cu ce expresie pot fi inlocuite punctele de suspensie astfel incat, in urma apelului s(2), sa afiseze
3 caractere *?
a) x>1
b) x>2
c) x>=3
d) x>0

51. Functia f este astfel definita incat f(1) = 8 si f(n+1)=2*f(n)-4, pentru n numar natural nenul.
C Care este cea mai mare valoare pe care o poate lua x astfel incat f(x) < 1000?
a) 7
b) 6
c) 8
d) 9
52. Care din urmatoarele metode de sortare nu este obtinuta prin metoda Divide et impera?
C a) Sortare prin interclasare
b) Sortare rapida
c) Sortare prin numarare

53. Care este complexitatea algoritmului de cautare binara (aplicat asupra unei colectii ordonate cu
n elemente), din punct de vedere al numarului de comparatii?
C a) n
b)
c) O( )
d) n/2
54. Se considera arborele binar
B

Se aplica metoda Divide et impera pentru traversarea in preordine a arborelui. Care este secventa
care corespunde traversarii in preordine a subarborelui drept?
a) +/+EF-GH
b) /+EF-GH
c) +*-AB+CD
d) *-AB+CD

55. Se considera arborele binar

Care este ultimul numar din lista care reda parcurgerea in postordine a arborelui?
a) -8
b) 17
c) 12
56. Se considera arborele binar
B

Folosind strategia Divide et Impera se cauta numarul 13 in acest arbore. Care sunt numerele cu
care se va compara?
a) 10, 11, 12, 14
b) 10, 15, 11, 14, 12
c) 15, 14
d) 1, 3, 8, 10, 11, 12, 14

57. Se considera imaginea partitionata recursiv in patru regiuni prin metoda Divide et impera.

Arborele asociat partitionarii este numit arbore Quad. Nodul radacina este constituit din intreaga
imagine. Care este inaltimea arborelui Quad care corespunde partitionarii date mai sus?
a) 3
b) 4
c) 5
d) 6
58. Presupunem ca a si b sunt numere intregi pozitive a cate n biti, unde , reprezinta
partile a cate n/2 biti:
B

Rezulta, de aici, ca inmultirea binara poate fi realizata prin strategia Divide et impera.
Complexitatea T(n) a algoritmului de inmultire binara este descrisa prin
a) T(n) = O( )
b) T(n) = O( )
c) T(n) = O(n/2)
59. Orice algoritm recursiv este o descriere a unui rationament de tip Divide et impera.
A a) Adevarat
b) Fals
60. Se considera trei tije notate cu numerele 1, 2 si 3. Se considera n discuri de diametre diferite.
A sensul
Initial, toate discurile sunt plasate pe tija 1 in ordinea descrescatoare a diametrelor, considerand
de la baza la varf. Se doreste testarea unui program care utilizeaza strategia Divide et
impera pentru a muta discurile de pe tija 1 pe tija 2, folosind ca tija de manevra tija 3 si
respectand urmatoarele reguli:
- la fiecare pas se muta un singur disc;
- un disc poate fi asezat numai peste alt disc cu diametru mai mare sau poate fi primul disc de la
baza tijei.

Notam prin T(n) numarul mutarilor necesare. Atunci:


a) T(n) =
b) T(n) =
c) T(n)=
d) T(n)=

61. Se considera un triunghi de numere naturale format din n linii. Prima linie contine un numar, a
doua linie doua numere, . . . , ultima linie n numere naturale. Cu ajutorul acestui triunghi se pot
C forma sume de numere naturale în felul urmator:
1) se porneste cu numarul din linia 1;
2) succesorul unui numar se afla pe linia urmatoare plasat sub el (aceeasi coloana) sau pe
diagonala la dreapta (coloana creste cu 1).

Presupunem ca ati implementat strategia programarii dinamice pentru a obtine cea mai mare
suma care se poate forma folosind regulile de mai sus.

Testati programul realizat pentru n = 4 si triunghiul de numere:


2
35
634
5614
Care este suma maxima obtinuta?

a) 14
b) 16
c) 17
d) 19
62. Se considera x - un vector cu n elemente numere întregi. Se scrie un program C++/Java bazat pe
B strategia Programarii Dinamice care va determina un cel mai lung sir crescator al sirului x.
In timpul testarii programului se considera:
n=5
x = (4, 5, 7, -1, 7)
Programul trebuie sa afiseze:
a) 4, 5, 7
b) 4, 5, 7, 7
c) 5, 7, 7

63. Fie G un graf orientat si ponderat avand n varfuri. Fie d[i] lungimea drumului maxim care are ca
B extremitate initiala varful i (i = 1, 2, ..., n). Valoarea d(G) = max{d[i]; i = 1, 2, ..., n} reprezinta
diametrul grafului G.
Se doreste utilizarea programarii dinamice pentru elaborarea si testarea unui program C++/Java
care pentru un graf orientat G furnizeaza d(G). Care este algoritmul care, modificat, faciliteaza
obtinerea diametrului grafului G?
a) Dijkstra
b) Roy-Floyd
c) Kruskal

64. Fie matricele A[50][20], B[20][1], C[1][10] si D[10][100]. Se doreste realizarea inmultirii celor
C patru matrici X = ABCD. Inmultirea matricelor este asociativa, iar numarul de inmultiri pentru
realizarea produsului Y=UV (unde U[m][n] si V[n][p]) este mxnxp. Care este ordinea de
inmultire (obtinuta prin metoda programarii dinamice) ce duce la numarul minim de inmultiri cu
care se poate calcula X.
a) A x ((BxC)xD)
b) (Ax(BxC))xD
c) (AxB)x(CxD)

65. Se defineste o partitie a unui numar natural n ca fiind o scriere a lui n sub forma
C
, unde , iar sunt numere naturale care verifica relatia
. Ati scris un program C++/Java, care utilizeaza metoda
programarii dinamice, pentru a numara si genera partitiile oricarui numar n introdus de la
tastatura.
Pentru n = 7 se cere sa precizati cate din partitiile generate de programul dumneavoastra sunt
constituite numai din numere impare: este impar pentru oricare i, .

a) 7
b) 6
c) 5
d) 8
B 66. Intr-o regiune montana se doreste instalarea unui lant de telecabine. Se considera ca in regiunea
montana considerata sunt N varfuri si ca statiile pentru telecabine pot fi montate in oricare din
cele N varfuri. Presupunem ca varfurile sunt date de la stanga la dreapta (exemplu: de la Vest la
Est) si ca sunt numerotate prin 1, 2, 3,..., N. Astfel, fiecare varf i este precizat prin coordonata
X[i] (pe axa OX) si inaltimea H[i] (pe axa OY). Se doreste infiintarea a exact K statii de
telecabine. Deoarece se doreste ca lantul de telecabine sa asigure conectarea varfurilor 1 si N, cu
exceptia statiei 1 (amplasata obligatoriu in varful 1) care este conectata doar cu statia 2 si a
statiei K (amplasata obligatoriu in varful N) care este conectata doar cu statia K-1, toate celelalte
statii i (1 < i < K) sunt conectate atat cu statia i-1 cat si cu statia i+1, iar lungimea totala a
cablurilor folosite la conectare sa fie minima. Lungimea cablului dintre doua statii este egal cu
distanta dintre ele. In plus, un cablu care uneste doua statii consecutive nu poate avea o lungime
mai mare decat o lungime fixata L. De asemenea, formele de relief influenteaza conectare. Mai
precis: varfurile i si j (i < j) nu pot fi conectate direct daca exista un varf v (i<v<j) astfel incat
segmentul de dreapta care uneste varfurile i si j trece pe sub varful v. Daca i, v si j sunt coliniare
atunci toate trei se considera a fi statii.
Pentru a identifica amplasarea celor K statii astfel incat lungimea totala a cablurilor sa fie
minima si sa fie indeplinite restrictiile de mai sus ati elaborat un program C++/Java care
implementeaza un algoritm obtinut prin tehnica programarii dinamice. Programul afiseaza
lungimea minima LM si lista varfurilor in care se instaleaza statiile.
Pentru N = 7, K=5, L = 11 si amplasarea
X[i] H[i]
0 16
4 3
6 8
7 4
12 16
13 16
14 16
se cere sa verificati care dintre urmatoarele raspunsuri ale programului trebuie sa fie cel corect.
a) LM = 16, Statiile: 1, 5, 6, 7
b) LM = 22, Statiile: 1, 3, 5, 6, 7
67. O companie este alcatuita din N soldati. Se considera ca soldatii sunt identificati prin numerele
B 1, 2, ..., N si se cunosc inaltimile H[i], pentru fiecare soldat avand codul i (i = 1, 2, ..., N).
La prima inspectie soldatii sunt asezati in sir in ordinea crescatoare a codului. Capitanul doreste
ca din sir sa iasa un numar minim de soldati, iar cei care raman, fara sa-si schimbe locurile, sa
poata vedea cel putin o extremitate a sirului (din stanga sau din dreapta). Un soldat vede o
extremitate daca intre el si extremitate nu se afla un soldat cu inaltimea mai mare sau egala cu
inaltimea lui.
Ati scris un program C++/Java care accepta la intrare numarul N si inaltimile H[i], i=1, 2, ...,N si
determina, folosind strategia programarii dinamice, numarul minim de soldati x care trebuie sa
paraseasca sirul pentru a fi indeplinita conditia din enunt.
La testarea programului, dumneavoastra considerati urmatoarele date:
N=8
i = 1, H[1] = 1.86
i = 2, H[2] = 1.86
i = 3, H[3] = 1.31
i = 4, H[4] = 2.00
i = 5, H[5] = 1.40
i = 6, H[6] = 1.00
i = 7, H[7] = 1.97
i = 8, H[8] = 2.20
Ce valoare a lui x trebuie sa afiseze programul?
a) 3
b) 4
c) 2
d) 1

B 68. Se considera o matrice dreptunghiulara cu m linii si n coloane ce contine numere naturale in


intervalul [1,255]. Se doreste traversarea matricei din coltul stanga-sus in coltul dreapta-jos. O
traversare este compusa din deplasari. La o deplasare de executa un salt pe orizontala (se poate
ajunge in oricare celula de pe aceeasi linie, dar nu in acelasi loc) si un pas pe verticala (la celula
aflata dedesubt). Exceptia face ultima deplasare constituita doar din saltul de pe ultima linie in
coltul dreapta-jos. Rezulta ca in cadrul traversarii se viziteaza 2m celule.
Se doreste suma minima care se poate obtine prin astfel de traversari. Pentru aceasta ati elaborat
un program C++/Java care foloseste tehnica programarii dinamice pentru a determina suma
minima.
Vi se cere sa considerati, in vederea testarii programului, setul de date:
Dimensiunea matricei:
m = 4, n = 5
Matricea:
3 4 5 7 9
6 6 3 4 4
6 3 3 9 6
6 5 3 8 2
si sa validati raspunsul corect (care reprezinta suma minima ce poate fi obtinuta printr-o
traversare salt-pas).

a) 25
b) 28
c) 24
d) 22

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