•fireatmyself
|
 |
« : Ianuarie 15, 2006, 08:41:29 » |
|
Aici puteţi discuta despre problema Timbre.
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•DeadStar
Client obisnuit

Karma: 2
Deconectat
Mesaje: 59
|
 |
« Răspunde #1 : Ianuarie 15, 2006, 11:23:16 » |
|
Completati timbre.in.
|
|
|
Memorat
|
|
|
|
•fireatmyself
|
 |
« Răspunde #2 : Ianuarie 15, 2006, 11:41:57 » |
|
 gata  spor !
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•fireatmyself
|
 |
« Răspunde #3 : Ianuarie 16, 2006, 20:24:17 » |
|
am vazut ca unii useri (Airinei Adrian de ex.) au rezolvat problema in 0.01 si as vrea sa ii intreb daca nu cumva au gasit un greedy (eu am demonstrat (incomplet) ca nu exista si este posibil sa fi gresit  ) 
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•greco
|
 |
« Răspunde #4 : Ianuarie 16, 2006, 20:53:16 » |
|
E cam greu sa demonstrezi ca nu exista greedy la o problema, prezinta-ne si noua "demonstratia" ta. 
|
|
|
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.
|
|
|
•fireatmyself
|
 |
« Răspunde #5 : Ianuarie 16, 2006, 21:06:05 » |
|
pai "demonstratia" se bazeaza pe reducere la absurd. am presupus ca exista o rezolvare greedy (mai multe de fapt, toate avand la baza niste sortari si o observatie de bun simt) si ca tot romanu am gasit un exemplu pentru care nu merge aceasta metoda. acest timp de exemplu a fost exploatat in 90% din teste. admit totusi ca nu am epuziat toate greedy-urile existente care ar putea furniza o solutie la aceasra problema, deci am o demonstratie incompleta  . am pus intrebarea de mai sus tocmai in ideea de am confirma sau infirma observatiile mele. imi cer scuze pentru exprimarea incorecta de mai sus. nu detin o demonstratie completa (foarte greu de gasit una, dupa cum spune si greco), ci doar o demonstratie ce are la baza cateva cazuri de aplicabilitate a metodei greedy.
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•greco
|
 |
« Răspunde #6 : Ianuarie 16, 2006, 21:11:42 » |
|
Deci ca s-o scurtam nu ai demonstrat ca nu merge greedy, ai aratat ca unele greedy-uri au contraexemple. Adica exact ceea ce ma asteptam sa fi facut. 
|
|
|
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.
|
|
|
•fireatmyself
|
 |
« Răspunde #7 : Ianuarie 16, 2006, 21:13:40 » |
|
 da varule  . daia sunt tare curios sa vad ce cazuri imi scapa  (ca in mod evident exista  )
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
u-92
Vizitator
|
 |
« Răspunde #8 : Ianuarie 16, 2006, 21:16:27 » |
|
eu am rezolvat cu greedy.. nu am demonstrat insa riguros corectitudinea lui, m-am bazat doar pe niste chestii intuitive  p.s: daca vrei trimite-mi un pm si iti prezint detaliat metoda mea
|
|
|
Memorat
|
|
|
|
•fireatmyself
|
 |
« Răspunde #9 : Ianuarie 16, 2006, 21:34:57 » |
|
u-92 : am dat pm si astept raspuns  damn, am dat-o in bara urat la faza asta (sa-mi fie rusine). eh, ma revansez cu a treia problema [veti regreta ca l-ati suparat pe balaur  ]
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•wefgef
|
 |
« Răspunde #10 : Ianuarie 17, 2006, 23:41:05 » |
|
eu am obtinut timpi buni cu o rezolvare O((n div k)*m). initial am fost si eu uimit ca am luat 100. nu aveam timp sa implementez ceva mai complicat si am scris primul lucru ce mi-a venit in minte; 25 de randuri mi-a luat in total. ptr teste cu k mic, programul meu ar fi busit.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•Marius
|
 |
« Răspunde #11 : Septembrie 30, 2006, 22:11:17 » |
|
Exista intotdeauna solutie ?
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
ditzone
Vizitator
|
 |
« Răspunde #12 : Septembrie 30, 2006, 22:14:42 » |
|
Da
|
|
|
Memorat
|
|
|
|
•moga_florian
Strain
Karma: 4
Deconectat
Mesaje: 12
|
 |
« Răspunde #13 : Iulie 21, 2007, 13:08:28 » |
|
poate sa-mi dea cineva un hint despre ce e mai special la testul 8? am observat ca mai multa lume a avut probleme cu testu 8 multzam later edit: nevermind, i got it 
|
|
« Ultima modificare: Iulie 22, 2007, 07:48:28 de către Florian MOGA »
|
Memorat
|
|
|
|
•APOCALYPTO
|
 |
« Răspunde #14 : August 13, 2010, 20:36:16 » |
|
Solutia cea mai buna e O( M log M) ?
|
|
|
Memorat
|
|
|
|
•paunmatei7
Strain
Karma: 28
Deconectat
Mesaje: 27
|
 |
« Răspunde #15 : Decembrie 28, 2012, 21:51:08 » |
|
Exista cazuri speciale la problema asta ? Greedy-ul meu pica testele 4 si 8 si nu inteleg dc  Aici e sursa mea :http://infoarena.ro/job_detail/842192 Sugestii ?
|
|
|
Memorat
|
|
|
|
•harababurel
Client obisnuit

Karma: 23
Deconectat
Mesaje: 62
|
 |
« Răspunde #16 : Decembrie 29, 2012, 00:03:44 » |
|
observ ca tu iei toate intervalele in ordinea crescatoare a capatului superior, si la fiecare pas cumperi o secventa din intervalul actual. exista posibilitatea ca aceeasi secventa (sa zicem [0, k-1], cat e cea pe care vrei sa o acoperi initial) sa poata fi cumparata din mai multe intervale, cu costuri diferite, si atunci nu are sens sa le folosesti pe toate. in plus, pentru n = k (sau pentru valori apropiate), si intervale de genul [0,1] [0,2] [0,3], ..., [0,n], algoritmul tau parcurge si cumpara toate intervalele mici, oprindu-se doar cand a acoperit intreaga secventa [1,n]. in cazul asta e clar ca poti cumpara doar ultimul interval in intregime, cu un cost mult mai mic decat suma tuturor. aceeasi idee si pentru alte valori ale lui k: solutia nu consta intotdeauna in intervale alaturate, ci intr-o submultime formata din intervale care nu au neaparat legatura ca pozitie in sirul ordonat. algoritmul meu se bazeaza pe o idee asemanatoare, doar ca incep constructia de la pozitia n, si folosesc sirul sortat descrescator. initial, e sigur ca exista cel putin un interval din care sa pot cumpara o secventa ce se termina pe pozitia n (altfel nu ar exista solutie). in caz ca exista mai multe astfel de intervale, il aleg pe cel cu costul minim si cumpar din el o secventa de dimensiune k (nu are rost sa cumpar una mai scurta). la pasul urmator, voi avea de cumparat o secventa care se termina pe pozitia n-k, alegand-o din mai multe intervale. din nou, aleg intervalul cu costul minim, cumpar de acolo secventa de lungime k, pozitia noua pe care va trebui sa o acopar va fi n-2k. de aici se repeta tot procedeul. mai trebuie avut grija la marcarea intervalelor folosite, ca sa nu cumperi 2 secvente din acelasi interval. sper ca te-am putut ajuta. 
|
|
|
Memorat
|
|
|
|
•Mihai22e
Client obisnuit

Karma: 20
Deconectat
Mesaje: 74
|
 |
« Răspunde #17 : Iulie 03, 2013, 22:24:43 » |
|
Cum se poate rezolva aceasta problema folosindu-te de un heap? Eu nu-mi dau seama de alta solutie in afara de greedy 
|
|
|
Memorat
|
|
|
|
•pauldb
|
 |
« Răspunde #18 : Iulie 04, 2013, 00:53:09 » |
|
Pai greedy, dar cum faci sa-ti intre solutia in timp fara heap?
|
|
|
Memorat
|
Am zis 
|
|
|
•Mihai22e
Client obisnuit

Karma: 20
Deconectat
Mesaje: 74
|
 |
« Răspunde #19 : Iulie 04, 2013, 15:21:36 » |
|
Pai eu am complexitate M * (N/K). La fiecare pas iau din intervalul (pe care inca nu l-am folosit) de cost minim pentru care capatul din dreapta este >= N, apoi marchez intervalul ca si folosit si actualizez N-ul: N -= K. Repet procedeul pana cand ajung cu N la 0.
|
|
|
Memorat
|
|
|
|
•pauldb
|
 |
« Răspunde #20 : Iulie 04, 2013, 15:58:36 » |
|
Solutia cu heap e aceeasi, dar in loc sa cauti in timp liniar intervalul nefolosit de cost minim din dreapta, sortezi descrescator intervalele si le adaugi intr-un heap extragand la fiecare pas intervalul de cost minim. Complexitatea devine O(MlogM + NlogM) in loc de O(NM).
|
|
|
Memorat
|
Am zis 
|
|
|
•Lizzard
Strain
Karma: -6
Deconectat
Mesaje: 8
|
 |
« Răspunde #21 : Decembrie 02, 2013, 21:53:23 » |
|
Cam ce cazuri particulare pot interveni? ( WA pe 4 si 8 )
|
|
|
Memorat
|
|
|
|
•retrograd
Client obisnuit

Karma: 3
Deconectat
Mesaje: 50
|
 |
« Răspunde #22 : Martie 03, 2015, 01:04:28 » |
|
M-am gandit la o rezolvare bazata pe o dinamica :
DIN[ i][j] -> costul minim pentru a rezolva sumbproblema pe [1..i] cu primele j dintre timbre.
Astfel avem relatia DIN[ i][j] = - DIN[ i][j-1], daca M[j] < i - DIN[max(0, i-k)][j-1] + C[j] , daca M[j] >= i si costul se imbunatateste (adica este mai mic decat DIN[ i][j-1])
Mentiune : - DIN[0][j] = 0, oricare j - DIN[ i][0] = infinit, oricare i >= 1
Rezolvarea nu imi iese din timp, in schimb da WA pe 3 dintre teste. Ce am busit?
|
|
« Ultima modificare: Martie 03, 2015, 01:18:51 de către Mihai Calancea »
|
Memorat
|
|
|
|
•klamathix
|
 |
« Răspunde #23 : Martie 03, 2015, 01:38:04 » |
|
Păi îți merge pe exemplu dacă îl rescrii ca:
4 3 2 6 2 5 3 2 1
?
|
|
|
Memorat
|
|
|
|
•tudorcoman
Strain
Karma: 2
Deconectat
Mesaje: 13
|
 |
« Răspunde #24 : Noiembrie 28, 2015, 15:28:31 » |
|
Poate sa imi dea cineva testul 8 (sau un test cu o structura asemanatoare)? Am vazut ca multi au avut WA pe testul 8 si chiar nu stiu ce sa repar...
|
|
|
Memorat
|
|
|
|
|