Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: CHEI, RUNDA 2 .CAMPION 2010  (Citit de 7481 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
dornescuvlad
Nu mai tace
*****

Karma: -138
Deconectat Deconectat

Mesaje: 234



Vezi Profilul
« : Decembrie 03, 2010, 19:33:17 »

Salut!
Am o problema la implementarea solutiei oficiale si nu o inteleg partial.In solutie scrie ca se va alege primul purcelus nedeschis (cu cheie sau spart) adica nodul cu valoarea cea mai mica, care n-a fost "deschis".De aici incercam sa gasim un circuit, ca sa aflam porcusorul care trebuie deschis (spart, iar apoi facem un DFS sa deschidem ceilalti, cu cheile gasite in acesta).
Un ciclu intr-un graf neorientat este echivalent cu un circuit intr-un graf orientat ?
Voi alege nodul (porcusorul) cu gradul cel mai mare ? (Adica cu cele mai multe chei ? si voi deschide vecinii acestuia) Este cumva o abordare de tip greedy sau n-am inteles eu bine solutia deloc? Smile

Multumesc.
Memorat
auRSTAR
Strain


Karma: 15
Deconectat Deconectat

Mesaje: 10



Vezi Profilul
« Răspunde #1 : Decembrie 03, 2010, 20:47:30 »

Cu un DFS intr-un graf neorientat obtii 100 de puncte.
Memorat
skull
Client obisnuit
**

Karma: 17
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #2 : Decembrie 03, 2010, 21:06:55 »

Trebuie doar sa determini numarul de componente conexe. Daca asociezi un graf problemei observi ca fiecare nod are gradul intern MAXIM 1 (doar un purcelus are cheia lui) deci nu exista posibilitatea ca la o parcurgere sa ramana un nod nevizitat din componenta conexa pe care o parcurgi. Sper ca te-am ajutat cat de cat, nu ma pricep sa dau explicatii Rolling Eyes . Ia-ti niste exemple si o sa observi cum functioneaza. Ok
Memorat
APOCALYPTO
Nu mai tace
*****

Karma: 3
Deconectat Deconectat

Mesaje: 250



Vezi Profilul
« Răspunde #3 : Decembrie 04, 2010, 18:52:09 »

Se poate lua 100 si daca dublezi muchiile si determini componenetele conexe Thumb up.
Dar trebuie neaparat sa parsezi citirea altfel vei lua 63.
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #4 : Decembrie 04, 2010, 19:06:58 »

Eu cu citiri in c++ luam 63 si cu citiri in c luam 97 Smile)
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #5 : Decembrie 04, 2010, 22:15:04 »

Merge si fara parsare daca faci cu disjoint data set si eviti dfs-ul. Probabil.
Memorat
APOCALYPTO
Nu mai tace
*****

Karma: 3
Deconectat Deconectat

Mesaje: 250



Vezi Profilul
« Răspunde #6 : Decembrie 05, 2010, 16:06:19 »

Merge intradevar cu multimi disjuncte fara parsare, dar tot trebuie sa foloseti citirea cu scanf().
Cu streamuri se ia 75.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines