Sunteți pe pagina 1din 4

Fisa de laborator - Algoritmul Roy-Floyd

1. Imperiul

Intr-un imperiu exista N orase; intre unele orase exista un drum direct si din orice oras se poate
ajunge in toate celelalte. Noul imparat doreste sa isi instaleze curtea in unul dintre orase astfel incat
el sa poata ajunge la fiecare dintre celelalte pe drumurile cele mai scurte. El vrea ca aceste drumuri sa
fie pietruite si, bineinteles costul total al acestei lucrari sa fie minim.

Date de intrare In fisierul IMPERIU.IN se afla

- pe prima linie N si M (nr de orase si nr de drumuri directe)

- pe urmatoarele M linii triplete de forma i j k avand semnificatia ca intre orasele i si j se afla un drum
direct de lungime k

Date de iesire in fisierul IMPERIU.OUT se afla

- pe prima linie X (orasul in care s-a stabilit capitala)

- costul total al lucrarii

- pe urmatoarele N-1 linii se afla succesiunea de orase prin care se ajunge la fiecare dintre celelalte
orase pe un drum de lungime minima

Exemplu IMPERIU.IN IMPERIU.OUT

68 2

121 17

138 21

156 23

233 234

252 25

345 256

457

561

II. Drumuri

Modificati algoritmul RoyFloyd astfel incat

a) sa se afiseze numarul de drumuri minime pentru oricare doua destinatii


b) sa se afiseze toate drumurile de cost minim ce se pot gasi intre doua noduri x si y, oarecare.
c) Sa se afiseze costul unui circuit minim care trece prin nodul x si care sa contina cel putin doua
noduri.

Fisa de laborator - Tare conexitate

Intr-o zona s-a intocmit o harta turistica. Cele N cabane sunt unite intre ele prin trasee marcate pe
care se circula intr-un singur sens.

Din fisierul HARTA.TX se citesc

- pe prima linie N (numarul de cabane) si M (numarul de trasee directe)

- pe urmatoarele M linii perechi de forma x y cu semnificatia ca intre cabanele x si y este un traseu pe


care se circula in sensul x->y

Prietenul tau Gigi Raft se afla in cabana A

Destinatii

Sa se afiseze toate cabanele la care poate ajunge Gigi mergand pe trasee marcate

Vizite

Sa se afiseze toate cabanele la care poate ajunge astfel incat sa se poata intoarce apoi in A mergand
pe trasee marcate

Grupuri

Sa se afiseze toate grupurile de cabane care sunt unite prin drumuri - de la oricare dintre ele la toate
cele din grup.

Grafuri neorientate. Probleme propuse

1. Fie un graf neorientat memorat prin matricea de adiacente si o succesiune de k noduri.


Sa se determine daca succesiunea citita este un lant din graf
2. Din fisierele mat1.in si mat2.in se citesc doua matrici patratice associate grafurilor g1
si g2. Sa se deremine daca g2 este graf partial pentru g1
3. Fie o harta cu n orase. Cele n orase se citesc din fisier. Intre cele n orase exista m
drumuri. Se cunosc distantele celor n drumuri.
a. Sa se determine daca orasul x si orasul y sunt vecine
b. Sa se afiseze lungimile tuturor localitatilor intre care exista drum direct
c. Sa se determine lungimea minima a drumului dintre doua localitati citite de la
tastatura
4. La o receptie sunt invitate n personae. Se cunosc numele celor n persoane . Intre
anumite persoane exista relatii de colaborare. Sa se determine daca se pot dispune cele
n personae la o masa rotunda astfel incat intre oricare doua personae alaturate sa existe
relatii. Se citesc : numele persoanelor si cele m relatiile sub forma de perechi de nume
5. Un eschimos locuieste la iglul cu numarul z. El are o harta pe care sunt marcate iglu-
urile din zona (numerotate de la 1 la n) si distantele dintre acestea. Stiind ca din cauza
frigului eschimosul nu poate sa parcurga o distanta mai mare de 20 km fara oprire,
afisati o varianta de a ajunge la prietenul lui care locuieste la iglul cu numarul w,
eventual cea mai scurta varianta care indeplineste cerinta data. Cati kilometri a
parcurs eschimosul?
6. Un graf neorientat este bipartit daca exista o partitie a multimii nodurilor in doua
multimi A si B astfel incat oricare doua varfuri din aceeasi multime sa nu fie
adiacente. Sa se scrie un program care verifica daca un graf este bipartit si in caz
afirmativ sa se tipareasca multimile A si B
7. Problema colorarii unei harti. Se citesc 4 culori (siruri de caractere) si denumirile a n
tari (siruri de caractere) . Sa se coloreze harta astfel incat sa nu existe doua tari
alaturate avand aceeasi culoare. Se va afisa o solutie : tara-culoare, tare-culoare etc.
8. Sa se coloreze un graf astfel incat oricare doua muchii incidente cu acelasi nod sa fie
colorate diferit. Care este numarul minim de culori necesar.
9. O pestera are n incaperi, fiecare situata la o adancime h. Configuratia pesterii este data
de cele m culoare de acces intre camerele pesterii (culoarele sunt date ca extremitati).
In incaperea s exista un izvor de apa sulfuroasa. Se dau n, m, cele m culoare (ca
perechi x-y), s si adancimile h ale camerelor. Determinati incaperile inundate si
culoarele umezite.
10. Fie un graf neorientat. Sa se determine daca graful contine cicluri.

Probleme propuse cu algoritmul Roy-Floyd

Intre n statii spatiale se stabilesc trasee. Se cunosc traseele directe intre perechi de statii si
distanta dintre ele. Sa se determine drumul minim intre doua statii date stiind ca nu pot fi doua
statii pare una dupa cealalta. Sa se afiseze drumul de la statia x la statia y.
Reteaua de strazi a unui oras este reprezentata prin nodurile intersectii ale orasului. Din
intersectiile A si B pleaca doi pietoni spre intersectiile x, respectiv y. Ei conosc bine orasul si merg
spre destinatie pe drumul minim. Stabiliti daca traseele au trecut prin puncte comune si care sunt
aceste intersectii. Determinati daca exista intersectiile in care s-au intalnit.

Intr-o tabara, elevii au n puncte de plecare (cantina, corturile, stejarul cel batran etc.). Initial,
deplasarea intre oricare doua puncte se face intr-un timp t, insa organizatorii au amplasat m
obstacole pe traseele dintre aceste puncte. Cu fiecare obstacol care trebuie depasit, elevii pierd
30 de secunde. Pe un traseu pot fi mai multe obstacole. Elevii vor sa ajunga din punctul X in
punctul Y, pe drumul cel mai scurt. Scrieti un program care citeste n, X, Y. Apoi m perechi de
puncte intre care sunt amplasate obstacole si afiseaza drumul cel mai rapid intre X si Y.

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