Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 123 Razboiul lumilor  (Citit de 5013 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
ditzone
Vizitator
« : Octombrie 23, 2005, 21:48:48 »

Aici puteţi discuta despre problema Razboiul lumilor.
Memorat
junior
Strain
*

Karma: 20
Deconectat Deconectat

Mesaje: 42



Vezi Profilul
« Răspunde #1 : Octombrie 29, 2005, 21:12:30 »

Complexitatea e O(n*t), nu? Poate sa-mi dea cineva vreun hint? Eu nu am reusit decat ceva de genul O(n*n*t) care, evident, nu intra in timp.
Memorat
calinux
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 42



Vezi Profilul
« Răspunde #2 : Octombrie 29, 2005, 21:29:50 »

Eu am facut un algoritm O(N*T). Dar nu sunt sigur de corectitudine... Si dat fiind ca nu iau 100... presupun ca nu e corect... or uit ceva. Iata ce fac eu:

1. Leg de frunze un nod virtual care are distanta catre acele noduri 0
2. Pornesc un bfs din acel nod astfel incat sa generez intr-un vector distantele minime din orice nod catre cea mai apropiata frunza.
3. Selectez maximul dintre aceste valori.
4. Afisez toate nodurile care au distanta maxima.

Pe testul dat in exemplu merge. Logic cred ca ar trebui sa fie ok. Daca poate cineva sa-mi zica daca ii se pare incorect. Mersi mult.
Memorat

"And all that is now,
And all that is gone,
And all that's to come,
And everything under the sun is in tune
But the sun is eclipsed by the moon"
The Dark Side of The Moon - Pink Floyd
greco
Nu mai tace
*****

Karma: 144
Deconectat Deconectat

Mesaje: 434



Vezi Profilul
« Răspunde #3 : Octombrie 30, 2005, 12:19:17 »

Cred ca aceasta modalitate de a aborda o problema nu este foarte productiva. Ar fi mai bine sa pui mana pe foaie, sa vezi exact cum sta treaba, si sa te apuci de implementat numai in momentul in care esti sigur ca algoritmul tau e corect. Daca implementezi ideile care iti vin si lasi evaluatorul infoarena sa-ti spuna daca erau bune sau nu, o sa ai surprize pe la concursuri...
Memorat

Jump in the cockpit and start up the engines
Remove all the wheelblocks there's no time to waste
Gathering speed as we head down the runway
Gotta get airborne before it's too late.
junior
Strain
*

Karma: 20
Deconectat Deconectat

Mesaje: 42



Vezi Profilul
« Răspunde #4 : Octombrie 30, 2005, 13:15:18 »

Citat din mesajul lui: calinux
Eu am facut un algoritm O(N*T). Dar nu sunt sigur de corectitudine... Si dat fiind ca nu iau 100... presupun ca nu e corect... or uit ceva. Iata ce fac eu:

1. Leg de frunze un nod virtual care are distanta catre acele noduri 0
2. Pornesc un bfs din acel nod astfel incat sa generez intr-un vector distantele minime din orice nod catre cea mai apropiata frunza.
3. Selectez maximul dintre aceste valori.
4. Afisez toate nodurile care au distanta maxima.

Pe testul dat in exemplu merge. Logic cred ca ar trebui sa fie ok. Daca poate cineva sa-mi zica daca ii se pare incorect. Mersi mult.


Pai din ce inteleg eu tu calculezi distantele minime de la orice nod catre frunze. In enunt se cam cere altceva... (scuze daca am zis vreo prostie, sau am inteles prost explicatia ta)

Totusi, se indura cineva sa-mi dea un hint?
Memorat
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #5 : Octombrie 30, 2005, 18:33:58 »

Pornesti un DFS din nodul 1 si pt fiecare nod calculezi in timpul DFSului distanta maxima a nodului respectiv la fiii sai. Apoi pt. fiecare nod calculezi si distanta maxima "in sus" din arborele DFS... ( nu mai zic cum Clover ). Totul e in O(N) pe test.
Memorat
u-92
Vizitator
« Răspunde #6 : Noiembrie 20, 2005, 18:16:42 »

nu.. eu tot nu ma prind  Brick wall adica nu imi dau seama cum sa determin distanta "in sus" in o(n)
Memorat
VladS
Vizitator
« Răspunde #7 : Noiembrie 20, 2005, 18:21:51 »

Incearca sa rezolvi Color2 ca e cam aceasi idee si ai solutie oficiala din care te poti inspira.
Memorat
u-92
Vizitator
« Răspunde #8 : Noiembrie 20, 2005, 19:46:04 »

mersi, m-am prins acum Peace rezolvasem si eu color2, dar acolo era oarecum mai simplu..
Memorat
anouk
Strain


Karma: 10
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« Răspunde #9 : Decembrie 14, 2006, 22:26:39 »

sunt destul de nedumerita, am calculat pt fiecare nod subarborele cu radacina in nodul respectiv si suma distantelor maxima, si apoi am ales nodurile cu sume minime... in timp intra, exemplul de pe site merge, merg si cateva cazuri facute de mine, chiar nu reusesc sa-mi dau seama ce am gresit... oare nu e buna ideea de rezolvare?
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #10 : Decembrie 14, 2006, 23:06:54 »

Cod:
2
12
11 10 2
10 3 2
3 4 10
2 9 3
9 3 8
9 12 9
1 12 7
12 6 13
8 7 1
7 12 15
1 5 11
16
1 5 6
1 2 3
1 3 1
1 4 4
5 6 4
5 7 2
7 12 2
7 13 3
2 8 1
4 9 2
9 14 1
4 10 3
10 15 6
4 11 1
11 16 3

Cod:
Testul nr #1
9
12
Testul nr #2
1
Memorat

Am zis Mr. Green
anouk
Strain


Karma: 10
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« Răspunde #11 : Decembrie 14, 2006, 23:13:05 »

merci  Smile.. la primul test nu-mi afiseaza decat 12, but i'm working on it
Memorat
andunhill
Vorbaret
****

Karma: 12
Deconectat Deconectat

Mesaje: 183



Vezi Profilul
« Răspunde #12 : Aprilie 12, 2012, 10:02:16 »

Nu ar trebui micsorata limita de timp   Smile ? Sursa mea  http://infoarena.ro/job_detail/733433 merge sub 200 ms.
Memorat
VisuianMihai
De-al casei
***

Karma: -9
Deconectat Deconectat

Mesaje: 121



Vezi Profilul
« Răspunde #13 : Septembrie 22, 2012, 22:09:17 »

La primul test, nu inteleg de ce e orasul 4. Nu ar trebui sa fie primul oras, pentru ca e mai aproape de multe orase decat 4? Huh
Memorat
Schumi
Client obisnuit
**

Karma: 36
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« Răspunde #14 : Septembrie 22, 2012, 22:19:20 »

Problema iti cere sa alegi orasul pentru care drumul maxim intre el si orice alt oras e minim. In cazul testului 1, distanta maxima de la orasul 4 la alt oras este 5 (drumul de la 4 la 3), pe cand distanta maxima de la orasul 1 la alt oras este 7 (drumul de la 1 la 5).
Memorat
SebiSebi
Nu mai tace
*****

Karma: 76
Deconectat Deconectat

Mesaje: 306



Vezi Profilul
« Răspunde #15 : Decembrie 14, 2012, 09:19:16 »

Folosesc multiset din STL si vreau ca functia heap.erase(x) sa stearga un singur element cu valoarea x chiar daca sunt mai multe cu aceeasi valoare. Cum fac asta? Multumesc!
« Ultima modificare: Decembrie 14, 2012, 09:27:29 de către Pirtoaca George Sebastian » Memorat
vendetta
De-al casei
***

Karma: 72
Deconectat Deconectat

Mesaje: 122



Vezi Profilul
« Răspunde #16 : Decembrie 14, 2012, 09:42:24 »

stergi iteratorul pe care se afla elementul X
faci ceva de genul :
Cod:
multiset<int>::iterator it;
it = my_set.find(X);
my_set.erase(it);
Memorat
SebiSebi
Nu mai tace
*****

Karma: 76
Deconectat Deconectat

Mesaje: 306



Vezi Profilul
« Răspunde #17 : Decembrie 14, 2012, 14:15:56 »

Multumesc! A mers pana la urma.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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