|
Titlul: 083 Evantai Scris de: Mircea Pasoi din Iulie 12, 2005, 13:44:10 Aici puteţi discuta despre problema Evantai (http://infoarena.ro/problema/evantai).
Titlul: 083 Evantai Scris de: VladS din Iulie 15, 2005, 21:02:37 Am trimis mai multe solutii si nu iau mai mult de 15 puncte cu solutia in N^4. Imi poate spune cineva care e greseala in secventa urmatoare.
Cod: for (i=n-1;i;--i) Titlul: 083 Evantai Scris de: vladut.forum din Iulie 16, 2005, 12:47:10 wow, N^4, nici o sansa pt 100 de puncte...;)
Titlul: 083 Evantai Scris de: VladS din Iulie 16, 2005, 13:56:04 Gata, am gasit. Uitam sa fac modulo 30103 :oops:
Titlul: 083 Evantai Scris de: Oltean Dorin din August 04, 2005, 22:58:23 Citat Un evantai este un şir cu un număr par de termeni, E1 E2 ... E2K, cu următoarea proprietate: E1 + E2K > E2 + E2K-1 > ... > EK + EK+1 in exemplu spune ca sunt 7 nu?? deci o sa fie subsir evantai elementul de pe poz 1 cu elementul de pe poz 2 adica k = 1 E1 = 1 , E2k = 2 E1 + E2k >= E2 + E2k-1 deci nu e strict mai mare unde e problema in enunt sau gandesc eu gresit exemplul???[/i] Titlul: 083 Evantai Scris de: Oltean Dorin din August 04, 2005, 23:27:41 sin in exemplul
Cod:
cate subsiruri vor fi evantai ???23??? Titlul: 083 Evantai Scris de: vladut.forum din August 05, 2005, 07:44:01 de ce nu iei codul de mai sus, chiar daca e ineficent pt exemplu asta merge
Titlul: 083 Evantai Scris de: Silviu-Ionut Ganceanu din August 05, 2005, 10:56:00 Citat cate subsiruri vor fi evantai ???23??? Nici nu pot fi 23 de subsiruri de lungime para pentru un sir de 4 elemente!!! Numarul de subsiruri de lungime para este 7: - 6 de lungime 2 (combinari de 4 luate cate 2) - 1 de lungime 4 (sirul insusi) Toate 7 sunt evantai. Exemplu era facut sa va spuna ca se numara si subsirurile de lungime 2. Silviu Ganceanu Titlul: 083 Evantai Scris de: Silviu-Ionut Ganceanu din August 05, 2005, 10:56:52 TYTUS, tu chiar ai luat 100 cu N^4 ?
Silviu Titlul: 083 Evantai Scris de: Oltean Dorin din August 05, 2005, 12:52:40 Citat Numarul de subsiruri de lungime para este 7: eu am intrebat pentru exemplul ce l-am dat eu cate sunt nu pentru exemplul din problema adica Cod:
dar o sa fac oricum cum a zis vladut poate iasa raspunsul :| Titlul: 083 Evantai Scris de: vladut.forum din August 05, 2005, 16:07:28 silviu doar ti-a explicat ceva. aduti aminte ce-ai spus mai sus...
Citat unde e problema in enunt sau gandesc eu gresit exemplul???[/i] :-$ Titlul: 083 Evantai Scris de: Oltean Dorin din August 05, 2005, 16:15:27 da mi-am dat seama numa ca dupa ce am trimis mesajul ms oricum
am aflat pana la urma care erea problema Titlul: 083 Evantai Scris de: VladS din August 06, 2005, 15:21:05 Pt Silviu: nu, codul il foloseam ca verificator pentru solutia cu AIB.
Titlul: 083 Evantai Scris de: Silviu-Ionut Ganceanu din August 08, 2005, 19:46:57 Okay.. m-am linistit :)
Titlul: 083 Evantai Scris de: Filip Cristian Buruiana din Februarie 09, 2006, 16:26:30 Iau TLE pe 7 teste. Am folosit o idee aflata de la Cosmin Negruseri: am luat toate perechile si le-am sortat in functie de suma lor ( sortare liniara, un fel de radixsort ). Si dupa aia aflam sumele unor submatrici din AIBul meu si actualizam. Am actualizat AIBul cam asa ( cea mai rapida implementare pe care o cunosc ):
Cod: void query(int x, int y) Pentru a afla suma pe o portiune dreptunghiulara scad si adun niste submatrici cu coltul in (1,1) (4 matrici). Ce pot sa fac sa scap de TLE? ](*,) ](*,) P.S: Complexitatea mea e O(N^2 log^2 N). Titlul: 083 Evantai Scris de: Silviu-Ionut Ganceanu din Februarie 09, 2006, 17:04:49 Chiar Cosmine.. tu cum faceai problema asta, ca niciodata nu te-am ascultat pana la capat :)
Filip, daca vrei iti spun cum o faceam eu.. Mi-aduc aminte ca nu-mi trebuia query decat pentru dreptunghiuri cu coltul in (0,0) (am vazut ca pomeneai ceva de adunat si scazut de prin colturi, nu prea m-am uitat pe codul tau). Iar AIB-ul tau cred ca e comparabil cu ce faceam eu in solutia oficiala. Totusi, incearca sa compari versiunea ta cu versiunea cu LSB(x) (o gasesti prin surse oficiale, daca nu zi-mi si ti-o trimit prin email) pe niste teste mari (chiar sunt curios ce iese). Have fun, Silviu Titlul: 083 Evantai Scris de: Gogu Marian din Februarie 09, 2006, 17:36:45 filipb, un sfat: renunta le operatia %.
Instructiunea Cod: S = (S + A[x][sy]) % MOD; poti sa o inlocuiesti cu Cod: S += A[x][sy]; Face minuni la timpul de executie. De asemenea, cred ca ar trebui sa te folosesti de formula ca sa aflii cel mai nesemnificativ bit de 1 in O(1). Titlul: 083 Evantai Scris de: u-92 din Februarie 09, 2006, 17:45:06 o implementare mai rapida la aib cred ca ar fi asta
Cod: int query(int x, int y) si ideea e ca iti trebuie elementele mai mici ca x de pe pozitii intre y1 si y2, deci A
Titlul: 083 Evantai Scris de: Cosmin Negruseri din Februarie 09, 2006, 23:24:12 Pai eu luam toate perechile de indici i,j si sortam a + a[j]. Dupaia lucram cu punctele (i, j) cu suma a+a[j] luate in ordine dupa suma lor. Acuma ma interesa cate subsiruri incep cu i1 se termina cu j1 si au suma a[i1] + a[j1] au suma mai mica (adica puncte (i1, j1) care le-am inserat deja in structura) cu proprietatea ca i < i1 < j1 < j. Ca sa fac chestia asta bagam un range query pe arborele de intervale si un update dupaia ca sa inserez punctul. Asa scapam de restrictia asupra valorilor elementelor sirului pt ca ne intereseaza doar ordinea sumelor nu si valoarea lor.
Edit: Se pare ca solutia mea e ca si a lui filip Titlul: 083 Evantai Scris de: Silviu-Ionut Ganceanu din Februarie 10, 2006, 02:03:26 Marfa gandit. Ai folosit arbori de intervale sau AIB-uri ?
Query-ul tau e tot intr-o structura 2D, corect ? (e un query cu varfuri in [0,0] si [i, j]) Silviu Titlul: 083 Evantai Scris de: Filip Cristian Buruiana din Februarie 11, 2006, 12:41:46 10x all de sfaturi =D> Aveam TLE de la chestia cu % ( :? )...
|