Mai intai trebuie sa te autentifici.
Diferente pentru preoni-2007/runda-1/solutii intre reviziile #32 si #33
Nu exista diferente intre titluri.
Diferente intre continut:
h2. Radiatie
h3. (problemagrea, clasele 11-12)
h3. (problemă grea, clasele 11-12)
Primul pasin rezolvarea problemei este construirea arborelui partial de cost minim a grafului datin {$O(M*logM)$}, folosind unul din algoritmii clasici precum Kruskal sau Prim. Se poate demonstra cao interogarein graful initial este echivalentacu o interogarein arborele partial minim. Pentru a determina cea mai mare valoare a unei muchii pe drumul unic din arboreintre nodurile $i$si $j$ procedam astfel: pentru orice nod $i$ din arboresi pentru orice $j$, fie {$A[i][j]$} = al {$2^j^$}-lea stramos al nodului $i$ in drumul spre radacina(aleasaaleator lainceput)si {$B[i][j]$} = muchia de cost maxim dintre cei {$2^j^$} stramosi ai nodului {$i$}. Precalculand aceste matriciin {$O(N*logN)$} se poate raspunde la un queryin {$O(log N)$}, mergandinspre radacinasimultan din $x$si $y$ pe stramosi pe baza puterilor lui 2 panacandintalnim primul nod care este stramosal ambelor noduri. La fiecare pas vom actualiza raspunsul prin compararea cu valorea elementelor corespunzatoare din tabloul $B$. O solutiesi mai simplade implementat este folosirea arborelui care rezultain urma algoritmului lui Kruskal, renuntand la euristica de compresie a drumului,si folosind doar euristica duparang. Se poate demonstra cao interogarein arborele partial minim este echivalentacu o interogarein arborele de multimi disjuncte obtinut din algoritmul lui Kruskal. Cum acest arbore areinaltimea {$O(logN)$}, se poate folosi o parcurgere trivialapentru a raspunde la orice query.
Primul pas în rezolvarea problemei este construirea arborelui parţial de cost minim a grafului dat în {$O(M*logM)$}, folosind unul din algoritmii clasici precum Kruskal sau Prim. Se poate demonstra că o interogare în graful iniţial este echivalentă cu o interogare în arborele parţial minim. Pentru a determina cea mai mare valoare a unei muchii pe drumul unic din arbore între nodurile $i$ şi $j$ procedăm astfel: pentru orice nod $i$ din arbore şi pentru orice $j$, fie {$A[i][j]$} = al {$2^j^$}-lea stramos al nodului $i$ in drumul spre radacină (aleasă aleator la început) şi {$B[i][j]$} = muchia de cost maxim dintre cei {$2^j^$} strămoşi ai nodului {$i$}. Precalculând aceste matrice în {$O(N*logN)$} se poate răspunde la un query în {$O(log N)$}, mergând înspre rădăcină simultan din $x$ şi $y$ pe strămoşi pe baza puterilor lui 2 până când întâlnim primul nod care este strămoş al ambelor noduri. La fiecare pas vom actualiza răspunsul prin compararea cu valorea elementelor corespunzătoare din tabloul $B$. O soluţie şi mai simplă de implementat este folosirea arborelui care rezultă în urma algoritmului lui Kruskal, renunţând la euristica de compresie a drumului, şi folosind doar euristica după rang. Se poate demonstra că o interogare în arborele parţial minim este echivalentă cu o interogare în arborele de mulţimi disjuncte obţinut din algoritmul lui Kruskal. Cum acest arbore are înălţimea {$O(logN)$}, se poate folosi o parcurgere trivială pentru a răspunde la orice query.
==Include(page="template/preoni-2007/footer")==