•filipb
|
 |
« : Decembrie 24, 2008, 12:11:47 » |
|
Aici puteti discuta despre problema Deque.
|
|
|
Memorat
|
|
|
|
•mlazari
Strain
Karma: 8
Deconectat
Mesaje: 28
|
 |
« Răspunde #1 : Aprilie 23, 2009, 16:37:49 » |
|
Am scris o sursa in Pascal ( http://infoarena.ro/job_detail/307185?action=view-source) la aceasta problema si iau doar 60 puncte (TLE la ultimele teste). Pot sa optimizez cumva aceasta sursa sau nu voi reusi sa obtin 100 cu o sursa in Pascal si trebuie sa o scriu in c? 
|
|
|
Memorat
|
|
|
|
•belgun_adrian
Strain
Karma: 5
Deconectat
Mesaje: 11
|
 |
« Răspunde #2 : Aprilie 24, 2009, 21:43:38 » |
|
|
|
|
Memorat
|
|
|
|
•livium
Strain
Karma: -2
Deconectat
Mesaje: 21
|
 |
« Răspunde #3 : Februarie 06, 2011, 16:27:23 » |
|
Eu nu pot sa inteleg de ce solutia cu deque are complexitate O(N). Eu m-am gandit la ce complexitate are algoritmul postat aici cu deque si imi iese o complexitate mai mare decat N, insa in nici un caz N. Pentru ca se parcurge vectorul A o data cu for si apoi se mai parcurge partial si Deque cu un while in la fiecare iteratie in for. Deci eu zic ca complexitatea trebuie sa fie mai mare decat N.
|
|
|
Memorat
|
|
|
|
•livium
Strain
Karma: -2
Deconectat
Mesaje: 21
|
 |
« Răspunde #4 : Februarie 06, 2011, 17:29:26 » |
|
de exemplu pentru sirul 3 4 1 6 5 cu k=3 se parcurg urmatorii pasii: se compara:
4 cu 3 1 cu 4 1 cu 3 6 cu 1 5 cu 6 5 cu 1
deci sunt 6 comparari. Nu rezulta de aici ca complexitatea este 6 (adica N+1) si nu 5 (adica N) pentru exemplul dat?
|
|
|
Memorat
|
|
|
|
•PlayLikeNeverB4
|
 |
« Răspunde #5 : Februarie 06, 2011, 22:30:23 » |
|
Nu exista O(N+1)... Gandeste-te ca si cum N ar fi un numar mare si astfel 1 se poate neglija. Nici la O(2*N) nu cred ca se scrie 2-ul. Complexitatea nu arata numarul exact de operatii, ci doar intuitiv, sa poti estima numarul lor.
|
|
« Ultima modificare: Februarie 07, 2011, 16:08:28 de către George Marcus »
|
Memorat
|
|
|
|
•pauldb
|
 |
« Răspunde #6 : Februarie 06, 2011, 23:45:15 » |
|
Puteti citi mai multe despre notatia "O" pentru complexitatea timp: aici si aici, dar se mai gasesc si multe alte articole pe net sau in carti de specialitate (de exemplu in "Introducere in algoritmi" de Cormen, Lieserson, Rivest, Stein). Pe scurt, o functie g(n) se afla in clasa O(f(n)), daca exista un ordin n0 (numar natural) si o constanta reala c, astfel incat g(n) <= c*f(n) pentru orice n >= n0. O explicatie mai intuitiva e ca se tine cont doar de termenul care creste cel mai repede si constantele nu sunt luate in calcul. Pe link-urile pe care le-am postat mai sus se afla cate un exemplu.
|
|
|
Memorat
|
Am zis 
|
|
|
•livium
Strain
Karma: -2
Deconectat
Mesaje: 21
|
 |
« Răspunde #7 : Februarie 07, 2011, 13:04:23 » |
|
Aha...deci ar trebui sa analizez mai lejer complexitatea unui algoritm. Cat despre cele doua linkuri de pa wikipedia pot sa spun doar ca ma depasesc. Merci oricum!
|
|
|
Memorat
|
|
|
|
|
•SpiderMan
|
 |
« Răspunde #9 : Martie 04, 2011, 19:25:10 » |
|
Din cauza citirii, tu ai "%i", ceea ce se folosea mai demult in borland ( daca nu ma insel ) . Incearca sa folosesti "%d", si o sa mearga, si la rezultat sa folosesti "%lld", uite aici sursa ta : http://infoarena.ro/job_detail/546327[LE] Totusi "%i" cred ca mergea, greseala fatala era la rezultat, trebuie "%lld" ..... dar folosesti "%d" mai bine alte dati 
|
|
« Ultima modificare: Martie 04, 2011, 19:33:31 de către Simoiu Robert »
|
Memorat
|
|
|
|
•Bit_Master
|
 |
« Răspunde #10 : Martie 06, 2011, 13:11:37 » |
|
Din cauza citirii, tu ai "%i", ceea ce se folosea mai demult in borland ( daca nu ma insel ) . Incearca sa folosesti "%d", si o sa mearga, si la rezultat sa folosesti "%lld", uite aici sursa ta : http://infoarena.ro/job_detail/546327[LE] Totusi "%i" cred ca mergea, greseala fatala era la rezultat, trebuie "%lld" ..... dar folosesti "%d" mai bine alte dati  Mersi Dar cred ca fiindca lipsea ll-ul de la format. http://cplusplus.com/reference/clibrary/cstdio/printf/Scrie acolo d or i pt Signed decimal integer. Mie-mi place mai mult cu i. _________________________________ http://infoarena.ro/job_detail/547479http://infoarena.ro/job_detail/547484Se pare ca e mai lent cu %i. din ce am inteles pana cum ++i mai rapid ca i++ %d mai rapid ca %i max-ul de mana mai rapid decat cel din stl streamuri mai rapide pe infoarena, scanf si printf mai rapide pe campion si la olimpiada.
|
|
« Ultima modificare: Martie 06, 2011, 18:30:45 de către Alexandru-Iancu Caragicu »
|
Memorat
|
|
|
|
•toni2007
|
 |
« Răspunde #11 : Martie 06, 2011, 15:53:45 » |
|
Atata timp cat implementezi calumea nu ar trebui sa fie problema detalii de genul.
|
|
|
Memorat
|
|
|
|
•Bit_Master
|
 |
« Răspunde #12 : Martie 06, 2011, 16:34:26 » |
|
Atata timp cat implementezi calumea nu ar trebui sa fie problema detalii de genul.
http://infoarena.ro/job_detail/547479http://infoarena.ro/job_detail/547484Pe infoarena iau 60 cu %i si 100 cu %d. Se pare ca unele teste sunt mai rapide cu %i, altele cu %d. Iar unul dintre ele iese de tot din timp la %i. Au mai fost unele de 90 cu scanf si 100 cu streamuri. Poate ar trebui marite un pic limitele, nu stiu. Oricum, daca zici ca la olimpiada nu conteaza e bine. Poate sunt mai mari limitele.
|
|
« Ultima modificare: Martie 07, 2011, 17:48:00 de către Alexandru-Iancu Caragicu »
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #13 : Martie 06, 2011, 17:38:09 » |
|
Faza cu ++i, i++ conteaza de la caz la caz. Daca ai V[++i] sau V[i++] sunt doua lucruri diferite. Si in for, nu conteaza cum il scrii, fiecare cum s-a obisnuit. Streamurile in general merg mai repede, pentru ca sunt mai noi si s-au dezolvata mai bine ca si printf, dar uneori citirea din c face minuni. Si da, "%d" e mai rapid ca si "%i" pentru ca formatul "%d" e mai nou.
|
|
|
Memorat
|
|
|
|
•Bit_Master
|
 |
« Răspunde #14 : Martie 06, 2011, 17:41:59 » |
|
Faza cu ++i, i++ conteaza de la caz la caz. Daca ai V[++i] sau V[i++] sunt doua lucruri diferite. Si in for, nu conteaza cum il scrii, fiecare cum s-a obisnuit. Streamurile in general merg mai repede, pentru ca sunt mai noi si s-au dezolvata mai bine ca si printf, dar uneori citirea din c face minuni. Si da, "%d" e mai rapid ca si "%i" pentru ca formatul "%d" e mai nou.
Stiu ca v[++i] sau v[i++] sunt doua chestii diferite.
|
|
|
Memorat
|
|
|
|
•dany123
Strain
Karma: 0
Deconectat
Mesaje: 17
|
 |
« Răspunde #15 : Noiembrie 11, 2011, 23:54:51 » |
|
De ce depasesc timpul la sursa asta. Am incercat s-o fac cat mai rapida dar pe pc-ul meu doar citirea la testul 15 imi ia ~1.4 secunde deci nu vad cum ar incapea in timp (am incercat si cu deque din stl si cu vector simplu dar iau la fel).
|
|
|
Memorat
|
|
|
|
•mihaibogdan10
Strain
Karma: -1
Deconectat
Mesaje: 3
|
 |
« Răspunde #16 : Noiembrie 12, 2011, 00:01:37 » |
|
Cineva de pe infoarena zicea ca s-au micsorat timpii la unele probleme. Nu am inteles care e treaba. Dar vad ca nu se mai ia 100 nici la deque, nici la componente tare conexe de o saptamana ...
|
|
|
Memorat
|
|
|
|
•pauldb
|
 |
« Răspunde #17 : Noiembrie 12, 2011, 02:46:37 » |
|
Am crescut limita de timp si am reevaluat problema.
|
|
|
Memorat
|
Am zis 
|
|
|
•mihaibogdan10
Strain
Karma: -1
Deconectat
Mesaje: 3
|
 |
« Răspunde #18 : Noiembrie 12, 2011, 03:43:12 » |
|
Multumesc! 
|
|
|
Memorat
|
|
|
|
|
•dutzul
|
 |
« Răspunde #20 : Aprilie 22, 2012, 21:04:46 » |
|
hmm iau TLE pe ultimu test cu heapuri dar nustiu cred ca greseste ceva pt ca pe penultimu test am 2sec ..nu pot deschide testul 20 nici cu notepad nici cu word ..
|
|
|
Memorat
|
|
|
|
•mathboy
|
 |
« Răspunde #21 : Aprilie 22, 2012, 21:11:48 » |
|
Iei TLE pt ca folosesti heapuri si nu deque. Desi nu e frumos sa storci niste puncte pe o complexitate de O(NlogK) in loc de O(N) poti incerca parsarea numerelor din input. PS: Nu incurajez obtinerea de puncte multe pe complexitati mai mari decat ar trebui. 
|
|
|
Memorat
|
|
|
|
•dutzul
|
 |
« Răspunde #22 : Aprilie 23, 2012, 01:02:10 » |
|
 nu fac probleme pt puncte dar doar ziceam ca nu cred ca e de la program o sa incerc sa parsez ,cred ca are ceva mai special ultimu test; PS:Am fost la oni iti mai amintesti de mine?eu eram ala muci: 
|
|
|
Memorat
|
|
|
|
•mathboy
|
 |
« Răspunde #23 : Aprilie 23, 2012, 13:33:03 » |
|
Da, da, da. Cum sa nu imi amintesc?  )
|
|
|
Memorat
|
|
|
|
•vld7
Strain
Karma: 7
Deconectat
Mesaje: 17
|
 |
« Răspunde #24 : Noiembrie 05, 2012, 23:22:29 » |
|
De ce iau sigsegv pe asta ? http://infoarena.ro/job_detail/807054Bag direct elementul in deque in loc de pozitia lui, in rest e la fel ca sursa de 100.
|
|
|
Memorat
|
|
|
|
|