Diferente pentru aib intre reviziile #15 si #16

Nu exista diferente intre titluri.

Diferente intre continut:

_TO ADD:_ ce alte probleme de pe infoarena se mai rezolva cu AIB-uri?
de asemenea, de ce nu merge urmatoarul textile cod? Mircea: Merge, trebuie un Enter dupa si fara spatii la inceput.
* 'Datorii':http://infoarena.ro/problema/datorii
* 'Ben':http://infoarena.ro/problema/ben
* 'Evantai':http://infoarena.ro/problema/evantai
* 'Datorii':problema/datorii
* 'Ben':http:problema/ben
* 'Evantai':problema/evantai
Mircea: cum gasesti al K-lea numar intr-un AIB in O(lg^2^ N) si O(lg N) (aplicat: 'Schi':problema/schi)
AIB-urile sunt o structura de date care implementeaza eficient urmatoarea problema: avem un vector de numere, si vrem sa raspundem la urmatoarele operatii asupra lui:
1. se incremeneaza/ decrementeaza un numar din vector
2. care este suma unei anumite subsecvente a vectorului?
Pentru un exemplu mai concret, vezi problema 'datorii':http://infoarena.ro/problema/datorii.
Pentru un exemplu mai concret, vezi problema 'datorii':problema/datorii.
Sa ne gandim la cateva posibile solutii: am putea sa implementam usor un algoritm naiv de complexitate O(N), sau cu ceva efort sa folosim 'arborii de intervale':http://infoarena.ro/arbori-de-intervale pentru o complexitate O(logN). In continuare va vom prezenta structura de date numita AIB, usor de implementat si de aceeasi complexitate ca si arborii de intervale. Mai mult, deoarece acestia au constanta mult mai mica decat arborii de intervale, in practica se vor dovedi mult mai rapizi si vor ocupa si mai putina memorie.
Sa ne gandim la cateva posibile solutii: am putea sa implementam usor un algoritm naiv de complexitate O(N), sau cu ceva efort sa folosim 'arborii de intervale':arbori-de-intervale pentru o complexitate O(logN). In continuare va vom prezenta structura de date numita AIB, usor de implementat si de aceeasi complexitate ca si arborii de intervale. Mai mult, deoarece acestia au constanta mult mai mica decat arborii de intervale, in practica se vor dovedi mult mai rapizi si vor ocupa si mai putina memorie.
h2. Concret - Cum?
Complexitatea in timp a fiecarei operatii este O(logN), pentru ca, in cazul celei de-a doua operatii, la fiecare pas ultimul bit nenul al lui _i_ devine nul, si deci _for_-ul va itera de maxim log x ori. Structura ocupa spatiu O(N), doar vectorul AIB.
AIB-urile se pot extinde usor la cazul multidimensional, si lasam aceasta implementare ca tema pentru cititor. De asemenea, incercati sa rezolvati urmatoarele probleme de pe infoarena:
1. 'Datorii':http://infoarena.ro/problema/datorii
2. 'Ben':http://infoarena.ro/problema/ben
3. 'Evantai':http://infoarena.ro/problema/evantai
1. 'Datorii':problema/datorii
2. 'Ben':problema/ben
3. 'Evantai':problema/evantai
Pentru o lectura mai profunda in acest domeniu, va recomand 'acest articol de pe TopCoder':http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=binaryIndexedTrees.

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.