Grafuri neorientate. Probleme propuse
Fiind dat un număr natural p, să se adauge o muchie de cost p între două noduri terminale i și j din arbore și apoi să se elimine o altă muchie din arborele inițial, astfel încât să se obțină tot un arbore, iar diferența în modul dintre costul arborelui inițial și costul noului arbore să fie minimă.
Fișierul arbore.in conține pe prima linie valorile lui n și p (p reprezentând costul muchiei care se va adăuga în arbore), iar pe următoarele n-1 linii câte trei numere i, j, c, separate prin câte un spațiu, cu semnificația: nodurile i și j sunt adiacente în arbore, iar muchia [i,j] are costul c.
Fișierul arbore.out conține pe prima linie trei numere întregi i, j și c, separate prin câte un spațiu, i și j reprezentând extremitățile muchiei care se elimină și c costul acesteia. Pe a doua linie se află două numere întregi x, y reprezentând cele două noduri terminale care se vor unifica printr-o muchie de cost p. Pe ultima linie se află un singur număr D ce reprezintă diferența minimă dintre costul arborelui inițial și costul noului arbore.
Dacă sunt mai multe muchii care pot fi eliminate, se va elimina prima în ordinea aparițiilor în fișierul arbore.in.
Dacă se poate adăuga muchie între mai multe perechi de noduri terminale din arborele inițial, se va alege acea muchie pentru care suma valorilor extremităților este minimă.
La afișarea muchiilor, se va afișa întâi extremitatea de valoare mai mică.
arbore.in
|
arbore.out
|
Explicație |
7
7 2
4 1 2
5 1 1
2 4 1
3 2 3
6 4 3 7 3 |
1
2 4 4
6 3 |
S-a eliminat muchia [1,2] de cost 4, s-a adăugat muchia [4,6], bineînțeles de cost p=7, iar diferența în modul dintre costurile arborelui inițial și cel final este 3. Se mai putea elimina și muchia [3,6], dar [1,2] apare înaintea ei în fișierul arbore.in Se mai puteau adăuga și muchiile [5,6], [5,7], [4,7] dar suma 4+6 este mai mică decât 5+6, 5+7 sau 4+7 |
Statii
Infamul Overmind
al zergilor a fost distrus si locul de origine al protossilor din Shakuras sta acum
in ruine si fumegand. Ca Executor si comandant al fortelor Protoss ramase tu trebuie acum sa
reunesti populatia neputinciosa de protossi si sa ii salvezi de zergi care inca
ocupa cu nepasare pamanturile din Shakuras.Obiectivul tau este de a prelua
controlul unei baze principale a
civilizatiei Tassadariana si va trebui sa te folosesti de statiile de emisie receptie pentru ca doar acestea iti pot indica baza principala. Exista perechi de
statii de emisie-receptie care emit si receptioneaza in mod direct semnale.
Intre doua perechi de statii x si y care comunica direct timpul de emisie
este t . Semnalele la doua statii
pot ajunge fie direct fie indirect prin intermediul altor statii. Evident, pot
exista statii situate in baze diferite care nu vor putea comunica semnale.
Statiile care nu emit si nu primesc semnale sunt lipsite de importanta
strategica. Vei putea determina o baza principala stiind ca in Ziua Q toate statiile vor incepe sa
emita astfel incat fiecare statie va transmite un mesaj tuturor celorlalte
statii din interiorul bazei in care se afla (doua statii se gasesc in
interiorul aceleiasi baze daca sunt capabile sa-si transmita informatii direct
sau indirect). Semnalele intre doua statii vor fi transmise pe traseele de
comunicatie care necesita cel mai putin timp si se vor transmite in ambele
sensuri. Datorita bruiajului nu se vor emite concomitent mai multe semnale in
interiorul aceleiasi baze ci in mod succesiv astfel incat pentru a-si comunica
informatii oricare doua statii
dintr-o baza se va consuma o perioada de timp T. O baza principala va fi indicata de o valoare minima a lui T. Va
trebui sa gasesti aceasta valoare.
Date de intrare
Fisierul statii.in contine un
numar natural n reprezentand numarul de statii de emisie-receptie. In
continoare, pe linii diferite se vor gasi triplete de numere naturale
reprezentand perechile de statii x si y si timpul t de emisie de la x la y sau
de la y la x
Date de iesire
In fisierul statii.out se va
scrie numarul cerut reprezentand valoarea minima a lui T. Daca nu exista un
astfel de numar se va scrie 0.
Restrictii si precizari
1<=n<=100
numar natural
1<=t<=3000
numar natural
Numarul de baze
poate fi cel putin 1 si cel mult n.
statii.in |
statii.out |
8 1 2
10 1 3 5 2 4
20 3 4 3 1 4 2 2 3 4 5 6 1 6 7 2 7 8 4 6 8 1 7 5 3 |
24 |
Timp de executie 1s/test
Ex:
Pt m=2 si n=4
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
Vom numerota camerele de la 1 la mxn
Se obtine:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Ceea ce inseamna ca se poate circula de la 2 la 7 (si invers) si de la 4 la
7 (si invers)
Se va asocia fiecarei componente a[i][j] un nod avand valoarea x=(i-1)*n
+j.
Se obtine
graful :
Matricea b asociata
va fi o matrice avand (mxn) x (mxn) componente pentru care b[2][7]=b[7][2]=1 si b[7][4]=b[4][7]=1
Operatia inversa
(de reconstruire a matricii pornind de la graf ) este determinata de :
i=(x-1)/nc +1
j=(x-1)%nc+1