•informatician28
Strain
Karma: 6
Deconectat
Mesaje: 27
|
 |
« Răspunde #50 : Ianuarie 19, 2012, 23:15:05 » |
|
Merci mult! Am reusit pana la urma! 
|
|
|
Memorat
|
|
|
|
•stardust
Strain
Karma: 13
Deconectat
Mesaje: 39
|
 |
« Răspunde #51 : Iunie 13, 2012, 13:08:20 » |
|
Cum pot face update sa incrementez valorile dintr-un interval [x,y] ? Daca cobor pana in frunze si updatez fiecare interval de lungime 1 presupun ca este ineficient.
|
|
|
Memorat
|
|
|
|
•blasterz
|
 |
« Răspunde #52 : Iunie 13, 2012, 13:49:22 » |
|
Cum pot face update sa incrementez valorile dintr-un interval [x,y] ? Daca cobor pana in frunze si updatez fiecare interval de lungime 1 presupun ca este ineficient.
Trebuie sa folosesti tehnica "lazy update/delete". In fiecare nod al arborelui trebuie sa mentii 3 valori: Full[nod] = true daca tot intervalul corespunzator nodului are aceeasi valoare, false altfel V[nod] = valoarea in cazul in care Full[nod] == true Sum[nod] = suma pe interval In plus, cand faci update, trebuie sa pasezi informatiile la fii inainte sa apelezi recursiv. Uite aici o sursa http://hickery.net/info/aint2.html
|
|
|
Memorat
|
|
|
|
•PlayLikeNeverB4
|
 |
« Răspunde #53 : Iunie 13, 2012, 15:21:39 » |
|
Intr-o sursa in care vrei sa explici ceva, nu inteleg de ce ai scrie chestii gen "p^=q^=p^=q" sau sa inlocuiesti "/2" cu ">>1". Ar trebui sa o faci cat mai clara, in stil Python. Parerea mea...
|
|
|
Memorat
|
|
|
|
•wefgef
|
 |
« Răspunde #54 : Iunie 13, 2012, 17:30:40 » |
|
Intr-o sursa in care vrei sa explici ceva, nu inteleg de ce ai scrie chestii gen "p^=q^=p^=q" sau sa inlocuiesti "/2" cu ">>1". Ar trebui sa o faci cat mai clara, in stil Python. Parerea mea... a ^= b ^= a ^= b interschimba valorile celor doua variable.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•PlayLikeNeverB4
|
 |
« Răspunde #55 : Iunie 13, 2012, 23:30:52 » |
|
a ^= b ^= a ^= b interschimba valorile celor doua variable.
Intamplator am mai intalnit asta si stiam ce face. In fine, daca altii inteleg inseamna ca nu e nicio problema.
|
|
|
Memorat
|
|
|
|
•blasterz
|
 |
« Răspunde #56 : Iunie 13, 2012, 23:56:42 » |
|
Intr-o sursa in care vrei sa explici ceva, nu inteleg de ce ai scrie chestii gen "p^=q^=p^=q" sau sa inlocuiesti "/2" cu ">>1". Ar trebui sa o faci cat mai clara, in stil Python. Parerea mea... Sursa, precum si siteul, le.am facut prin 2008 si nu le.am revizuit de atunci. In plus asta e ceva mai avansat de aint si consider ca cineva care a ajuns sa invete asta ar trebui sa stie operatii pe biti. Sursa unde prezint aint normal nu foloseste operatiile pe biti.
|
|
|
Memorat
|
|
|
|
|
•SebiSebi
|
 |
« Răspunde #58 : Iunie 20, 2012, 17:10:45 » |
|
Incearca sa pui inline la functii iar apoi scapa de parametrii aceeia multi de la functii( de ultimii 2 ), ei se salveaza pe stiva pentru nimic. Tu oricum nu ii mai folosesti.
|
|
« Ultima modificare: Iunie 20, 2012, 17:19:22 de către Pirtoaca George Sebastian »
|
Memorat
|
|
|
|
•geniucos
|
 |
« Răspunde #59 : Octombrie 30, 2012, 17:22:57 » |
|
Imi mai puteti da o data sursa care la update incrementeaza un interval [x,y] si apoi pune query despre sum pe niste intervale? Link-ul http://hickery.net/info/aint2.html dat de Mircea Dima nu mai merge  .Multumesc anticipat.
|
|
|
Memorat
|
|
|
|
•vendetta
|
 |
« Răspunde #60 : Octombrie 30, 2012, 21:08:01 » |
|
Uite aici : http://ideone.com/FmVovv o sursa pentru udpate pe un interval cu o valoarea x si apoi sa zici care e suma pe un interval;
|
|
|
Memorat
|
|
|
|
•SebiSebi
|
 |
« Răspunde #61 : Februarie 09, 2013, 12:45:39 » |
|
Cred ca ar trebui marita limita de timp. Se poate lua 100 doar cu parsare. Multumesc!
|
|
|
Memorat
|
|
|
|
•Fayed
Client obisnuit

Karma: -24
Deconectat
Mesaje: 62
|
 |
« Răspunde #62 : Martie 15, 2013, 17:00:40 » |
|
Imi poate spune cineva ce reprezinta vecotul A in care se retin elemente din vector ? 
|
|
|
Memorat
|
|
|
|
•bodyionita
Strain
Karma: -2
Deconectat
Mesaje: 6
|
 |
« Răspunde #63 : Septembrie 21, 2013, 18:30:24 » |
|
Limita de timp cu adevarat trebuie marita intrucat rezolvarea acestei probleme nu tine de "ingeniozitatea" de a parsa citirea ci de a lucra cu arbori de intervale... Multumesc!
|
|
|
Memorat
|
|
|
|
|
|
•vladutz15
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #66 : Aprilie 01, 2014, 13:33:41 » |
|
Imi explica si mie cineva, va rog, de unde vine 4*dim+66 ? 
|
|
|
Memorat
|
|
|
|
•https
Strain
Karma: 0
Deconectat
Mesaje: 30
|
 |
« Răspunde #67 : Aprilie 01, 2014, 15:50:20 » |
|
Ce dimensiune trebuie sa aiba un arbore de intervale?
|
|
|
Memorat
|
|
|
|
•toranagah
Strain
Karma: 2
Deconectat
Mesaje: 5
|
 |
« Răspunde #68 : Aprilie 03, 2014, 13:53:52 » |
|
Pai fiind un arbore binar echilibrat, ai 1 nod(radacina), cu 2 fii, urmati de 4 noduri, 8 etc, pana la ultimul nivel unde ai fix N noduri. Asta e egal cu 20 + 21 + 22 ... +2X = 2X+1 - 1, unde 2X = N. 2X+1 = 2 * 2X = 2 * N. Deci un 3 * N ar trebui sa ajunga(pentru ultimul nivel, incomplet).
|
|
|
Memorat
|
|
|
|
•gogu
Client obisnuit

Karma: 42
Deconectat
Mesaje: 98
|
 |
« Răspunde #69 : Aprilie 03, 2014, 20:16:58 » |
|
De fapt 3*N nu e de ajung tot timpul, 4*N e mai sigur. Concret, nivelul K are 2^K noduri, deci in total o sa fie 2*Pow-1 noduri in arbore, unde Pow e cea mai mica putere a lui 2, mai mare sau egala cu N. Cand N e de forma 2^K+1, ai nevoie de cam 4*N elemente. Pe scurt, 4*N+10 e cel mai sigur, si nu iti mai faci griji de cazuri particulare. Niciodata nu e recomandat sa bagi limite stricte la array-uri decat atunci cand chiar esti fortat.
|
|
|
Memorat
|
|
|
|
•mariusn01
Strain
Karma: 4
Deconectat
Mesaje: 16
|
 |
« Răspunde #70 : Iulie 13, 2014, 12:54:18 » |
|
Cred ca ar trebui marita putin limita de timp. Pentru a obtine 100 trebuie scris un algoritm bine optimizat, adica elevul trebuie sa sa ocupe si de altceva decat de implementarea corecta a structurii de date (de exemplu trebuie evitate unele variabile locale, functia de query trebuie sa nu returneze valoare, trebuie renuntat la unii parametri ai functiilor de update si query - in ultimul caz algoritmul devine mai putin clar cand il explici cuiva prima data ...). Cand cineva invata prima data algoritmul si vede ca nu obtine 100 poate crede ca algoritmul lui nu e bun si se poate descuraja ... Si sursa prezentata drept oficiala ruleaza aproape de timpul maxim pe unele teste ... In fine, e doar o parere ...
|
|
|
Memorat
|
|
|
|
•klamathix
|
 |
« Răspunde #71 : Iulie 14, 2014, 02:46:14 » |
|
Am mărit la 0.5  . În general dacă mai vedeți limite prea strânse, mai ales în arhiva educațională, anunțați, fiindcă n-avem nicio intenție să le ținem așa dacă nu e nevoie.
|
|
|
Memorat
|
|
|
|
|
•SebiSebi
|
 |
« Răspunde #73 : Ianuarie 18, 2015, 00:23:46 » |
|
Faptul ca primesti SIGSEGV depinde de sistemul de operare pe care se testeaza solutia. De exemplu Unix-urile sunt mai "sensibile" decat Windows-ul. Exista situatii cand un program functioneza pe Windows dar pe Unix (ex. Ubuntu, Mint) primeste SIGSEGV.
|
|
|
Memorat
|
|
|
|
•nparfene2004
Client obisnuit

Karma: 22
Deconectat
Mesaje: 81
|
 |
« Răspunde #74 : August 10, 2015, 19:02:46 » |
|
Va rog sa ma ajutati si pe mine cu urmatoarea problema: Cum pot modifica functia Query astfel incat sa furnizeze pozitia maximului si nu maximul?
|
|
|
Memorat
|
|
|
|
|