Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 167 Timbre  (Citit de 10479 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« : 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 Deconectat

Mesaje: 59



Vezi Profilul
« Răspunde #1 : Ianuarie 15, 2006, 11:23:16 »

Completati timbre.in.
Memorat

fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #2 : Ianuarie 15, 2006, 11:41:57 »

Embarassed gata Smile
spor !
Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« 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   Embarassed )
 Mr. Green
Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
greco
Nu mai tace
*****

Karma: 144
Deconectat Deconectat

Mesaje: 434



Vezi Profilul
« 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.  Shocked
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
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« 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 Tongue. 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
Nu mai tace
*****

Karma: 144
Deconectat Deconectat

Mesaje: 434



Vezi Profilul
« 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.  Smile
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
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #7 : Ianuarie 16, 2006, 21:13:40 »

Smile da varule Tongue. daia sunt tare curios sa vad ce cazuri imi scapa Smile (ca in mod evident exista  Mr. Green )
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 Tongue

p.s: daca vrei trimite-mi un pm si iti prezint detaliat metoda mea
Memorat
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #9 : Ianuarie 16, 2006, 21:34:57 »

u-92 : am dat pm si astept raspuns Tongue

damn, am dat-o in bara urat la faza asta (sa-mi fie rusine). eh, ma revansez cu a treia problema  Evil or Very Mad  Evil or Very Mad  Evil or Very Mad
[veti regreta ca l-ati suparat pe balaur Tongue]
Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« 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
Nu mai tace
*****

Karma: 154
Deconectat Deconectat

Mesaje: 572



Vezi Profilul
« 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 Deconectat

Mesaje: 12



Vezi Profilul
« 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 Huh
multzam

later edit: nevermind, i got it  Smile
« Ultima modificare: Iulie 22, 2007, 07:48:28 de către Florian MOGA » Memorat
APOCALYPTO
Nu mai tace
*****

Karma: 3
Deconectat Deconectat

Mesaje: 250



Vezi Profilul
« Răspunde #14 : August 13, 2010, 20:36:16 »

Solutia cea mai buna e O( M log M) ?
Memorat
paunmatei7
Strain
*

Karma: 28
Deconectat Deconectat

Mesaje: 27



Vezi Profilul
« 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 Brick wall
Aici e sursa mea :http://infoarena.ro/job_detail/842192
Sugestii ?
Memorat
harababurel
Client obisnuit
**

Karma: 23
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« 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.  Smile
Memorat
Mihai22e
Client obisnuit
**

Karma: 20
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« 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  Think
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« 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 Mr. Green
Mihai22e
Client obisnuit
**

Karma: 20
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« 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
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« 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 Mr. Green
Lizzard
Strain


Karma: -6
Deconectat Deconectat

Mesaje: 8



Vezi Profilul
« 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 Deconectat

Mesaje: 50



Vezi Profilul
« 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
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« 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 Deconectat

Mesaje: 13



Vezi Profilul
« 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
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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