•DITzoneC
|
 |
« : August 14, 2007, 21:59:28 » |
|
Aici puteţi discuta despre problema Scara 2.
|
|
|
Memorat
|
|
|
|
•Marius
|
 |
« Răspunde #1 : August 20, 2007, 22:40:36 » |
|
Daca generez toate partitiile cu back iau 4 TLE. Daca fac o dinamica mai intai in O(N * H * M^2), dupa care caut toate partitiile cu ajutorul matricei din dinamica, nici o partitie in plus, iau tot 4 TLE.
Cum ati reusit sa fiti sub 0.1 s ?
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•domino
|
 |
« Răspunde #2 : August 20, 2007, 23:31:32 » |
|
Incearca o rezolvare O(3^M) (este foarte rapida in cazul asta).
|
|
|
Memorat
|
|
|
|
•Marius
|
 |
« Răspunde #3 : August 22, 2007, 16:15:10 » |
|
Nu imi dau seama de O(3^M). Tot la O(Comb(M, N) * N!) ajung.
Inca putin ajutor, te rog ?
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•fireatmyself
|
 |
« Răspunde #4 : August 22, 2007, 18:52:26 » |
|
in primul rand trebuie sa generezi toate partitionarile lui H in N termeni distincti. pentru fiecare partitie (in cadrul back-ului) calculezi E[t] = efortul minim pentru a urca primele t trepte o sa fie ceva gen: void bkt() { if (Nr_termeni == N) calculeaza_E(); else mai_pune_un_termen_la_partitie; } Spor 
|
|
« Ultima modificare: August 22, 2007, 19:21:20 de către Bogdan A. Stoica »
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•domino
|
 |
« Răspunde #5 : August 22, 2007, 18:54:30 » |
|
Trebuie sa calculezi pentru fiecare submultime a numerelor {1,2...M} care este efortul minim care se poate obtine construind o scara cu valorile din submultime. Ca sa calculezi asta pentru o submultime S, alegi o alta submultime S' de valori inclusa in S si calculezi efort(S) in functie de efort(S-S') si costul ca sa parcurga toate valorile din submultimea S' (media aritmetica + P), presupunand ca valorile din S' se afla la inceputul scarii. Partea mai dificila este reconstituirea solutiei.
|
|
|
Memorat
|
|
|
|
•Marius
|
 |
« Răspunde #6 : August 22, 2007, 21:27:53 » |
|
E tare tare rezolvarea. domino rulz. 
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•marin
Strain
Karma: -1
Deconectat
Mesaje: 22
|
 |
« Răspunde #7 : Iunie 24, 2008, 08:15:27 » |
|
Are ceva special testul 1? E singurul pe care iau incorect 
|
|
|
Memorat
|
|
|
|
•Szabi
Strain
Karma: 1
Deconectat
Mesaje: 2
|
 |
« Răspunde #8 : Martie 12, 2009, 22:30:02 » |
|
in enunt scrie ca treptele sunt "de inaltimi distincte doua cate doua". se refera la faptul ca doua trepte consecutive au inaltimi diferite sau oricare doua inaltimi difera? mersi
|
|
|
Memorat
|
|
|
|
•0000
Strain
Karma: 3
Deconectat
Mesaje: 9
|
 |
« Răspunde #9 : Martie 12, 2009, 22:50:02 » |
|
Daca sunt "de inaltimi distincte doua cate doua" insemna ca orcum ai alege 2 au inaltimi distincte. 
|
|
|
Memorat
|
|
|
|
•Anamaria20
Strain
Karma: 6
Deconectat
Mesaje: 20
|
 |
« Răspunde #10 : Mai 07, 2010, 07:27:00 » |
|
 Poate cineva sa-mi trimita un mesaj personal cu o sursa de 100 sau cu solutia problemei? Nu imi vine nici o idee care sa mearga in 0.1 secunde si chiar as vrea sa aflu cum se face. Multumesc anticipat.
|
|
|
Memorat
|
|
|
|
•toni2007
|
 |
« Răspunde #11 : Mai 08, 2010, 08:38:47 » |
|
Gasesti la Downloads arhiva de la oji 2005 si iei de acolo sursa.
|
|
|
Memorat
|
|
|
|
•thesilverhand13
Strain
Karma: 9
Deconectat
Mesaje: 32
|
 |
« Răspunde #12 : Ianuarie 04, 2011, 01:18:32 » |
|
Am si eu o nelamurire .Am rezolvat in c aceasta problema cu ideea de rezolvare din solutia oficiala.Aceasta se bazeaza pe aranjamentele primelor inaltimi<=h(distanta de la sosea la vila) cu determinarea efortului prin metoda programarii dinamice.Ceea ce ma intriga este faptul ca imi iese din timp pe 5 dintre teste.As ruga sa imi explicati cateva idei de optimizare pentru care as putea sa reduc timpul de executie,daca nu este prea mare efortul.Multumesc anticipat!
|
|
|
Memorat
|
|
|
|
•pauldb
|
 |
« Răspunde #13 : Ianuarie 04, 2011, 17:19:10 » |
|
Pe infoarena, limita de timp a fost redusa ca sa se obtina 100 de puncte doar cu solutii mai destepte. Solutia ceruta aici depaseste cu mult nivelul de OJI. Daca totusi esti interesat, este un comentariu al lui Mircea mai sus care explica destul de bine ideea de rezolvare.
|
|
|
Memorat
|
Am zis 
|
|
|
•VisuianMihai
|
 |
« Răspunde #14 : Ianuarie 03, 2012, 14:34:25 » |
|
de ce nu imi afiseaza zecimalele? am declarat <iomanip>, iar rezultatul e de tip double void Afisare() { int i; fout<<setprecision(2)<<efmin<<'\n'; for (i=1; i<N; i++) fout<<solmin[i]<<' '; fout<<solmin[N];
|
|
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #15 : Ianuarie 03, 2012, 14:49:23 » |
|
Trebuie sa pui si fixed, adica sa faci fout << setprecision (2) << fixed  .
|
|
|
Memorat
|
|
|
|
•VisuianMihai
|
 |
« Răspunde #16 : Ianuarie 03, 2012, 14:53:12 » |
|
Trebuie sa pui si fixed, adica sa faci fout << setprecision (2) << fixed . Of, doamne...  mersi. Fixed e pentru rotunjire?
|
|
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #17 : Ianuarie 03, 2012, 15:25:30 » |
|
Nup, deci daca nu pui fixed, daca ai 8,23000, o sa ai 8,23 (fara zerouri), in schimb, daca pui fixed, ii zici la PC : ba, tu imi scrii cu X zecimale, si nu stergi cate au muschii tai chef  , adica daca ai nr. ala, si vreau sa afiseze cu 10 zecimale, face 8,230000.... (si pune automat cate zerouri vreau eu).
|
|
|
Memorat
|
|
|
|
•balakraz94
Strain
Karma: 0
Deconectat
Mesaje: 18
|
 |
« Răspunde #18 : Februarie 09, 2012, 21:06:37 » |
|
Cum as putea lua si eu 100p la problema asta, deoarece primesc doar WA .
P.S. Am rezolvat-o in O(3^m) si pe campion iau 100p.
L.E. S-a rezolvat, nu am mers decat atunci cand am folosit afisarea din C++ cu setprecision fixed.
|
|
« Ultima modificare: Februarie 09, 2012, 21:35:18 de către Popa Razvan »
|
Memorat
|
|
|
|
|