Pagini recente » Diferente pentru problema/admitere-fmi-2016 intre reviziile 11 si 12 | Diferente pentru problema/ndap intre reviziile 24 si 25 | Diferente pentru utilizator/alex_bucevschi intre reviziile 48 si 53 | Diferente pentru problema/palin3 intre reviziile 30 si 40 | Diferente pentru problema/darb intre reviziile 5 si 42
Diferente pentru
problema/darb intre reviziile
#5 si
#42
Nu exista diferente intre titluri.
Diferente intre continut:
== include(page="template/taskheader" task_id="darb") ==
Diametrul unui arbore reprezinta numarul de noduri de pe cel mai lung lant.
Diametrul unui arbore reprezintă lungimea drumului (ca numar de noduri) intre cele mai departate două frunze.
h2. Cerinţă
Dându-se un arbore cu $N$ noduri, să se determine diametrul acestuia.
h2. Date de intrare
Fişierul de intrare $darb.in$ ...
Pe prima linie a fisierului $darb.in$ se afla $N$ cu specificatiile de mai sus. Pe următoarele $N-1$ linii se află cate o pereche de numere $a$ si $b$ reprezentând muchiile arborelui.
h2. Date de ieşire
În fişierul de ieşire $darb.out$ ...
În fişierul de ieşire $darb.out$ se va afisa diametrul arborelui.
h2. Restricţii
* $... ≤ ... ≤ ...$
* $2 ≤ $N$ ≤ 100.000$
h2. Exemplu
table(example). |_. darb.in |_. darb.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
|11
1 2
1 3
1 4
2 5
3 6
4 7
5 8
5 9
6 10
10 11 | $8$ |
h3. Explicaţie
...
!problema/darb?diametruarbore2.png!
Cel mai lung lanţ al arborelui este din frunza 9 în 11 şi are dimensiunea 8.
h2. Indicaţii de rezolvare
O prima soluţie care ne vine în minte este să facem o parcurgere in lăţime din fiecare nod al arborelui şi să reţinem cea mai lungă distanţă parcursă. Această soluţie are complexitatea <tex>O(N^2)</tex> ce obţine $40$ puncte şi poate fi găsită 'aici':job_detail/1093859?action=view-source.
'Soluţia de 100 de puncte':job_detail/1085869?action=view-source se bazează pe două parcurgeri in lăţime/adâncime pornind cu prima parcurgere dintr-un nod oarecare şi continuând cu a doua din ultimul nod în care am ajuns. Astfel, cea mai îndepărtată frunză din prima parcurgere reprezintă un capăt al lanţului, urmând să îi găsim celălalt capăt în ultimul nod în care ajungem in a doua parcurgere având o complexitate <tex>O(N)</tex>.
== include(page="template/taskfooter" task_id="darb") ==
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.