Pagini: [1] 2   În jos
  Imprimă  
Ajutor Subiect: 024 Deque  (Citit de 10249 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« : Decembrie 24, 2008, 12:11:47 »

Aici puteti discuta despre problema Deque.
Memorat
mlazari
Strain
*

Karma: 8
Deconectat Deconectat

Mesaje: 28



Vezi Profilul
« 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?  Confused
Memorat
belgun_adrian
Strain


Karma: 5
Deconectat Deconectat

Mesaje: 11



Vezi Profilul
« Răspunde #2 : Aprilie 24, 2009, 21:43:38 »

din pacate nici o sursa in pascal nu a reusit sa treaca de 60 http://infoarena.ro/monitor?task=deque&compiler=fpc&score_begin=61

din aceleasi motive ca si la RMQ: http://infoarena.ro/forum/index.php?topic=2823.msg32942#msg32942
Memorat
livium
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 21



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

Mesaje: 21



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

Karma: 212
Deconectat Deconectat

Mesaje: 721



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

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



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


Karma: -2
Deconectat Deconectat

Mesaje: 21



Vezi Profilul
« 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
Bit_Master
Vorbaret
****

Karma: -49
Deconectat Deconectat

Mesaje: 159



Vezi Profilul
« Răspunde #8 : Martie 04, 2011, 19:19:46 »

Cu ce difera sursa mea (http://infoarena.ro/job_detail/546312?action=view-source) cu cea a lui Rares
(http://infoarena.ro/job_detail/545858?action=view-source).
Mi-am modificat sursa pana a ajuns aproape identica. Dc iau 25 si el 100?
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« 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 Very Happy
« Ultima modificare: Martie 04, 2011, 19:33:31 de către Simoiu Robert » Memorat
Bit_Master
Vorbaret
****

Karma: -49
Deconectat Deconectat

Mesaje: 159



Vezi Profilul
« 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 Very Happy

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/547479
http://infoarena.ro/job_detail/547484

Se 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
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« 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
Vorbaret
****

Karma: -49
Deconectat Deconectat

Mesaje: 159



Vezi Profilul
« 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/547479
http://infoarena.ro/job_detail/547484
Pe 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
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« 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
Vorbaret
****

Karma: -49
Deconectat Deconectat

Mesaje: 159



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

Mesaje: 17



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

Mesaje: 3



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

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #17 : Noiembrie 12, 2011, 02:46:37 »

Am crescut limita de timp si am reevaluat problema.
Memorat

Am zis Mr. Green
mihaibogdan10
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #18 : Noiembrie 12, 2011, 03:43:12 »

Multumesc! Ok
Memorat
SebiSebi
Nu mai tace
*****

Karma: 76
Deconectat Deconectat

Mesaje: 306



Vezi Profilul
« Răspunde #19 : Ianuarie 06, 2012, 17:00:46 »

Si problema http://infoarena.ro/problema/secvdist se rezolva tot cu ajutorul deque.
Memorat
dutzul
De-al casei
***

Karma: 42
Deconectat Deconectat

Mesaje: 119



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

Karma: 150
Deconectat Deconectat

Mesaje: 259



Vezi Profilul
« 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. Smile
Memorat
dutzul
De-al casei
***

Karma: 42
Deconectat Deconectat

Mesaje: 119



Vezi Profilul
« Răspunde #22 : Aprilie 23, 2012, 01:02:10 »

 Very Happy 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: Rolling on the Floor Laughing
Memorat
mathboy
Moderatori infoarena
Nu mai tace
*****

Karma: 150
Deconectat Deconectat

Mesaje: 259



Vezi Profilul
« Răspunde #23 : Aprilie 23, 2012, 13:33:03 »

Da, da, da. Cum sa nu imi amintesc? Smile)
Memorat
vld7
Strain


Karma: 7
Deconectat Deconectat

Mesaje: 17



Vezi Profilul
« Răspunde #24 : Noiembrie 05, 2012, 23:22:29 »

De ce iau sigsegv pe asta ? http://infoarena.ro/job_detail/807054
Bag direct elementul in deque in loc de pozitia lui, in rest e la fel ca sursa de 100.
Memorat
Pagini: [1] 2   În sus
  Imprimă  
 
Schimbă forumul:  

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