•blue_phoenix
Client obisnuit
Karma: 0
Deconectat
Mesaje: 57
|
|
« Răspunde #25 : Noiembrie 10, 2011, 19:08:19 » |
|
si sursa oficiala ia tot 40p, tot cu tle pe ultimele doua teste......
|
|
|
Memorat
|
|
|
|
•pauldb
|
|
« Răspunde #26 : Noiembrie 10, 2011, 19:45:20 » |
|
Am crescut limita de timp la 0.25s. Nici sursa mea nu se mai incadra in limita de timp.
|
|
|
Memorat
|
Am zis
|
|
|
•blue_phoenix
Client obisnuit
Karma: 0
Deconectat
Mesaje: 57
|
|
« Răspunde #27 : Noiembrie 10, 2011, 20:57:05 » |
|
Mersi! Tare chestia cu reevaluarea surselor deja trimise @Dragos: am trimis si o sursa cu ideea ta, cu buffer-ul; a scazut fff tare timpul, nu ma asteptam sa fie mai rapid parsatul caracter cu caracter decat cititul direct din fisier; pare o chestie f utila, mersi frumos!
|
|
|
Memorat
|
|
|
|
•iolan
Strain
Karma: 0
Deconectat
Mesaje: 1
|
|
« Răspunde #28 : Martie 03, 2012, 14:06:29 » |
|
De ce acest program a blocat monitorul de evaluare?
|
|
|
Memorat
|
|
|
|
•Roswen
Strain
Karma: 0
Deconectat
Mesaje: 3
|
|
« Răspunde #29 : Martie 10, 2012, 18:27:28 » |
|
Am incercat o implementare cu 3 vectori dar nu reusesc nicicum sa iau 100... iau incorect pe 6 teste dar toate exemplele care le incerc eu dau bine daca are cineva putin timp sa se uite peste sursa http://infoarena.ro/job_detail/710752?action=view-source sau stie cateva teste mai cheie pt verificarea greselilor as ramane recunoscator . Multumesc LE am rezolvat...dar schimbarea care am facut'o a fost sa scot conditia de urcare a nodului care il inlocuia pe cel proaspat sters (modul descris de articolul InfoArena), de aici ori eu am busit ceva la implementare, ori testele nu sunt chiar in regula.
|
|
« Ultima modificare: Martie 10, 2012, 19:31:37 de către Rus Alexandru »
|
Memorat
|
|
|
|
•PetcuIoan
Strain
Karma: 72
Deconectat
Mesaje: 49
|
|
« Răspunde #30 : Martie 22, 2012, 20:56:20 » |
|
Daca exista cineva care nu are chef sa implementeze heapuri de mana problema se rezolva usor cu multiset.
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #31 : Martie 23, 2012, 01:57:23 » |
|
Daca exista cineva care nu are chef sa implementeze heapuri de mana problema se rezolva usor cu multiset.
Merge la fel de usor si cu priority_queue.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•PetcuIoan
Strain
Karma: 72
Deconectat
Mesaje: 49
|
|
« Răspunde #32 : Martie 23, 2012, 09:38:34 » |
|
Smechera sursa, nu m-am gandit ca nu conteaza ce imi tin in structura atata timp cat afisez ce trebuie...
|
|
|
Memorat
|
|
|
|
•laurion
|
|
« Răspunde #33 : Martie 23, 2012, 11:39:23 » |
|
Care e defapt un vector implementat cu push_heap si pop_heap. Daca faci cu vector, poti sa accesezi si elementele din interior (dar nu le poti modifica, evident, ca ar trebui sa reechilibreazi), ce poate fi folositor daca vrei sa gasesti un nod in heap
|
|
|
Memorat
|
|
|
|
•taigi100
Strain
Karma: -2
Deconectat
Mesaje: 19
|
|
« Răspunde #34 : Iunie 15, 2012, 20:22:34 » |
|
De curiozitate nu ar trebui programul sa ruleze folosind numai 2 vectori? un vector Heap in care sa retii Heapul si un vector poz in care sa retii pozitile fiecarui element astfel initial punem poz[el(el=nr de elemente)]=el; iar cand schimbam pur si simplu regula paharelor astfel vom obtine un vector de genul v=(4,5,6,3,2) (am dat niste valori complet random) 1 2 3 4 5 asta ne spune ca elementul al 4-lea intrat in vector se afla pe pozitia 1 el intrat la 3-lea se afla pe pozitia 4 and so on Nu sunt sigur de intra in timp tinand cont ca pentru fiecare stergere vom avea nevoie de un for pentru a gasi elementul respectiv dar imi puteti zice de macar o sursa de genul da reultatele corecte? si daca da unde e greseala in sursa: http://infoarena.ro/job_detail/758521
|
|
|
Memorat
|
|
|
|
•soriyn
|
|
« Răspunde #35 : Iunie 15, 2012, 21:21:15 » |
|
Nu m-am uitat foarte atent dar sa zicem ca la un moment dat ai in heap 5 elemente. Apoi il stergi pe cel intrat primu si dupa asta adaugi alt numar. Si acum vrei sa il stergi pe cel intrat al 5-lea. Eu cred ca ai doi candidati. Adica in vectoru tau vor fi doi de 5 pentru ca tu ai doar variabila aia el. Practic numarul intrat al 6-lea cronologic tu il consideri ca al 5-lea din cauza ca decrementezi el cand stergi un element.
|
|
|
Memorat
|
|
|
|
•taigi100
Strain
Karma: -2
Deconectat
Mesaje: 19
|
|
« Răspunde #36 : Iunie 15, 2012, 22:24:26 » |
|
Mersi mult, imi da 7 teste corecte dar la ultimele 3 imi da TLE cum asi putea sa reduc un pic timpul de rulare la alea 3? ma gandeam de reusesc cumva sa elimin forul ala pentru poziti ( is doar in cls 9-a deci nu prea realizez dak ala e chiar problema de baza in timp dar asa cred) P.S. urasc faptul ca nu observ chestii cum ai observat tu kinda the reason i lost the national loot this year:(
|
|
|
Memorat
|
|
|
|
•soriyn
|
|
« Răspunde #37 : Iunie 15, 2012, 22:56:01 » |
|
Poti sa incerci sa schimbi citirea si afisarea. Incearca cu stream-uri poate intra in timp.
|
|
|
Memorat
|
|
|
|
•taigi100
Strain
Karma: -2
Deconectat
Mesaje: 19
|
|
« Răspunde #38 : Iunie 15, 2012, 23:07:23 » |
|
la fel:(
|
|
|
Memorat
|
|
|
|
•PlayLikeNeverB4
|
|
« Răspunde #39 : Iunie 15, 2012, 23:26:40 » |
|
Poti face down() si iterativ. Nu iti intra in timp fiindca tu cauti de fiecare data care este elementul intrat al x-lea, ceea ce ar trebui sa faci in O(1).
|
|
|
Memorat
|
|
|
|
•taigi100
Strain
Karma: -2
Deconectat
Mesaje: 19
|
|
« Răspunde #40 : Iunie 15, 2012, 23:50:22 » |
|
bun si cum asi putea face cautarea in O(1) fara inca un vector?
|
|
|
Memorat
|
|
|
|
•soriyn
|
|
« Răspunde #41 : Iunie 15, 2012, 23:55:20 » |
|
Nu prea cred ca ai cum fara un vector. Iar iterativ poti sa faci ceva de genu do { int son=0; //apoi verifici daca vreunul din fii e mai mic si in caz afirmativ son=1 si le interschimbi
}while(son);
P.S. : vad ca intre timp ti-ai editat mesajul. Presupun ca ai reusit sa faci iterativ
|
|
|
Memorat
|
|
|
|
•taigi100
Strain
Karma: -2
Deconectat
Mesaje: 19
|
|
« Răspunde #42 : Iunie 16, 2012, 00:01:31 » |
|
da numai ca din pacate acu imi greseste testul 5 si 6 int s,d,fk; do { fk=loc; s=fk*2;d=fk*2+1; if(s<=el && v[s]<v[fk]) fk=s; if(d<=el && v[d]<v[fk]) fk=d; if(fk!=loc) { swap(fk,loc); } }while(fk!=loc);
asta am facut desi nus sigur cat e de bine problema e ca nu inteleg de ce dar pur si simplu nu reusesc sa inteleg la ce miar tb sa am 3 vectori si cum sai folosesc (desi am facut multe probleme cu o gramada de vectori nush cum da mno...)
|
|
|
Memorat
|
|
|
|
•taigi100
Strain
Karma: -2
Deconectat
Mesaje: 19
|
|
« Răspunde #43 : Iunie 16, 2012, 00:19:47 » |
|
Ar fi tare de asi reusi sa realizez ce miam propus la inceput poz[1]=locatia elementului care a intrat primul in heap and so on si asta mar scuti de cautarea aia and such dar ink tb sa ma gandesc cum sa schimb valorile lui poz ca sa realizez asta
|
|
|
Memorat
|
|
|
|
•danalex97
|
|
« Răspunde #44 : Iulie 08, 2012, 11:17:25 » |
|
Ca sa faci un max-heap cu priority_queue e suficient sa il declari asa: priority_queue< pair<int,int> , vector< pair<int,int> > > H;
|
|
|
Memorat
|
|
|
|
•Schumi
Client obisnuit
Karma: 36
Deconectat
Mesaje: 74
|
|
« Răspunde #45 : Iulie 08, 2012, 11:55:10 » |
|
Pentru max heap e suficient Priority queue face maxheap daca il declari simplu. Daca vrei sa faci min heap trebuie sa schimbi declararea sau poti sa faci max heap si sa inserezi in loc de a -a in heap
|
|
|
Memorat
|
|
|
|
•danalex97
|
|
« Răspunde #46 : Iulie 11, 2012, 12:33:21 » |
|
Multumesc.
|
|
|
Memorat
|
|
|
|
•DevilShadow
Strain
Karma: 2
Deconectat
Mesaje: 18
|
|
« Răspunde #47 : Noiembrie 14, 2012, 23:18:58 » |
|
Diferenta dintre endl la '\n' ii de la 40 la 100 de puncte
|
|
|
Memorat
|
|
|
|
•pauldb
|
|
« Răspunde #48 : Noiembrie 15, 2012, 01:03:07 » |
|
endl forteaza golirea buffer-ului, '\n' nu. Din acest motiv, diferenta e sesizabila.
|
|
|
Memorat
|
Am zis
|
|
|
•Sapientia
Strain
Karma: 0
Deconectat
Mesaje: 29
|
|
« Răspunde #49 : Octombrie 18, 2013, 15:07:19 » |
|
2-se sterge elementul intrat al x-lea in multime, in ordine cronologica. Exista o operatie speciala de eliminare a unui element dintr-un heap inafara de min/max?
|
|
|
Memorat
|
|
|
|
|