Tema10 2015

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

Sunteți pe pagina 1din 3

Facultatea de Matematic i Informatic

Algoritmi i Structuri de Date Laborator


Anul I, semestrul I, an universitar 2015/2016
Serii: 13, 14
Web: http://laborator.wikispaces.com
Tema 10
18 decembrie 2014

Probleme obligatorii
Termen de predare : Laboratorul din sptmna 14 (21 ianuarie 2016)
(5 p) 1. (Algoritmul lui Dijkstra, Cormen capitolul 25) Se dau n orae, care pot fi conectate
sau nu printr-un drum direct. n caz afirmativ, se d i costul utilizrii acelui drum. S se
spun care este costul minim pentru a ajunge dintr-un oras k1 ntr-un ora k2 (eventual
trecnd prin alte orae intermediare).
(5 p) 2. (Algoritmul lui Kruskal pentru determinarea arborelui partial de cost minim, Cormen
capitolul 24) Se dau n orae i distanele dintre oricare dou. Se dorete conectarea
acestora cu fire de telefon astfel nct sa fie utilizat o lungime ct mai mic de cablu, dar s
poata fi iniiat o convorbire ntre oricare dou orae.
Not: Este obligatorie citirea datelor de intrare dintr-un fiier.

Probleme suplimentare
Termen de predare : Laboratorul din sptmna 14 (21 ianuarie 2016)
(5 p) 3. (Algoritmul Floyd-Warshall, Cormen capitolul 26.2) Se dau n orae, care pot fi
conectate sau nu printr-un drum direct. n caz afirmativ, se d i costul utilizrii acelui drum.
S se spun care este costul minim pentru a ajunge din orice ora n oricare alt ora,
folosind algoritmul Floyd-Warshall.
(3 p) 4. S se fac o sortare topologic a unui graf orientat aciclic (topological sort Cormen, capitolul 23.4).
(5 p) 5. Scriei un algoritm care s construiasc un arbore Huffman pentru un alfabet cu
ponderi dat, arbore reprezentat n aa fel nct s poat fi folosit att la codificare, ct i la
decodificare. Scriei proceduri care fac, la cerere, codificarea i decodificarea (vezi anexa)

(4 p) 6. Die Hard
Detectivul John McClane se rzboiete cu teroristul Hans Gruber ntr-un zgrie-nori.
McClane ncearc s ajung de pe latura vestic pe latura estic a etajului 33. Dar este n
picioarele goale, iar Gruber a spart toi pereii de sticl ai camerelor de pe etaj, umplnd
camerele de cioburi. McClane tie cte cioburi sunt n fiecare camer i tie c, dac intr
ntr-o camer, se va nepa n toate cioburile din ea. McClane ncearc s-i ndeplineasc
misiunea n urmtoarele condiii:

Harta etajului este un dreptunghi de M x N camere.


McClane poate porni din orice camer de pe latura de vest i se poate opri n orice
camer de pe latura de est.
McClane se poate deplasa doar ctre est, nord sau sud. Exist ui ntre oricare
dou camere adiacente pe vertical sau pe orizontal.
McClane vrea s minimizeze suma numerelor de cioburi n care se neap.

Date de intrare
Fiierul de intrare diehard.in conine pe prima linie numerele M i N. Pe fiecare din
urmtoarele M linii se afl cte N numere naturale nenule, reprezentnd numerele de
cioburi din fiecare camer.
Date de ieire
n fiierul de ieire diehard.out se va scrie, pe prima linie, numrul minim de cioburi
n care se va nepa McClane. Pe a doua linie se va descrie traseul urmat de McClane: linia
de pornire, urmat de un spaiu, urmat de un ir de caractere E, N sau S, lipite, care indic
ordinea deplasrilor.
Restricii

1 M, N 1.000

pentru 50% din teste, 1 M, N 100

numrul de cioburi din fiecare camer este cuprins ntre 1 i 4.000

dac exist mai multe trasee care minimizeaz suma numerelor de cioburi, le putei
tipri pe oricare din ele
Exemplu
diehard.in

diehard.out

45

85

99 13 5 18 35

2 ENEESSSE

10 7 67 12 22
10 4 83 13 10
15 12 95 6 1
Explicaie: Traseul urmat de McClane este 10 - 7 - 13 - 5 - 18 - 12 - 13 - 6 - 1.

Anexa
Algoritm de construcie a arborelui Huffman
Pas 1. Iniializare :
- fiecare caracter reprezint un arbore format dintr-un singur nod;
- organizm caracterele ca un min-heap, n funcie de frecvenele de apariie;
Pas 2. Se repet de n-1 ori :
- extrage succesiv X i Y, dou elemente din heap
- unific arborii X i Y :
- creaz Z un nou nod ce va fi rdcina arborelui
- Z^.st := X
- Z^.dr := Y
- Z^.frecv := X^.frecv+Y^.frecv
- insereaz Z n heap;
Pas 3. Singurul nod rmas n heap este rdcina arborelui Huffman. Se genereaz codurile
caracterelor, parcurgnd arborele Huffman.

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