Pagini: 1 2 [3] 4 5   În jos
  Imprimă  
Ajutor Subiect: 007 Datorii  (Citit de 58266 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #50 : Martie 07, 2006, 20:24:11 »

Uite functiile de update si query:

Cod:
int query(int x)
{
    int r = 0;
    for (; x; x -= x ^ (x-1) & x)
        r += A[x];
    return r;
}


Cod:
void update(int x, int v)
{
      for (; x <= n; x += x^(x-1) & x)
          A[x] += v;
}


Si cand citesti operatiile din fisier, pur si simplu apelezi functiile. Iar ca sa determini suma pe secventa <i,j> faci query(j)-query(i-1).
Si nu mai postati Aggressive surse  Annoyed   Annoyed   Annoyed
Spatiu irosit de aiurea pe forum.

Si eventual sterge-l tu cu butonul edit!!!

Edited by svalentin: tagul e "code", nu "quote" pentru formatare corecta Wink
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #51 : Martie 08, 2006, 14:44:09 »

Filip, cum explici faptul ca folosind functiile pe care u le-ai scris mai sus obtin TLE la toate testele?
Memorat
u-92
Vizitator
« Răspunde #52 : Martie 08, 2006, 15:27:43 »

in ce lucrezi ? daca in pascal nustiu ce sa zic, dar eu am trimis mai`nainte surse cu extensia .c si .cpp si intra in timp
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #53 : Martie 08, 2006, 18:40:28 »

c++, shi am trimis mai devreme o sursa folosind aceste 2 functii shi nu mi-a intrat in timp.

Dak vrei iti trimit un pm cu sursa sa vezi daca e bine ce am facut.

[Later edit] am luat 100 intre timp, eu citeam cu streamuri. mersi u-92. Pacat ca mi-am dat seama asha tarziu, mi-am batut capul o gramada incercand tot felul de optimizari, cand nu trebuia decat sa schimb functia de citire.  Brick wall
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #54 : Martie 10, 2006, 16:01:39 »

tibilets vezi sa foloseshti fscanf si fprintf, dak foloseshti streamuri nu o sa iti intre in timp orice optimizari ai face u, asha am patit shi eu. Dak nici asha nu iti merge trimite-mi sursa pe privat, nu o mai posta pe forum ptr ca poate fi o gresheala minora pe care uni sa o vada shi sa dea copy paste.
Memorat
nivan
Vizitator
« Răspunde #55 : Septembrie 28, 2006, 18:18:59 »

 Fac cu arbori indexati binar si folosesc scanf() printf() cu freopen(). Am optimizat cat am putut... totusi scot doar 80 puncte  (TLE pe testul 4). Don't get it  Singura optimizare pe care nu am facut-o e ca folosesc functii pentru Add, Sub si GetSum (adica sa introduc un element, sa scad valoarea unui element si sa gasesc suma pe intervalul <in,sf> ) Whistle   . Folosesc functii si pentru a obtine cate zerouri are la sfarsit un numar in binar.
 Totusi nu cred ca influenteaza faza cu functiile.............
Memorat
u-92
Vizitator
« Răspunde #56 : Septembrie 28, 2006, 18:35:20 »

de ce nu afli numarul de zero-uri terminale in timp constant?
Memorat
nivan
Vizitator
« Răspunde #57 : Septembrie 28, 2006, 18:36:08 »

nu prea inteleg la ce te referi....  Embarassed
Memorat
u-92
Vizitator
« Răspunde #58 : Septembrie 28, 2006, 18:39:57 »

uita-te la postul de mai sus al lui filipb, la functiile alea.. "x+=x^(x-1)&x" sare direct la numarul care trebuie
Memorat
nivan
Vizitator
« Răspunde #59 : Septembrie 28, 2006, 18:41:10 »

ms... Smile pe viitor voi citi si mai sus pe forum Aha

[Last Edit] Si eu parcurgeam ca prostu' prin ele......
« Ultima modificare: Septembrie 28, 2006, 18:44:51 de către nivan » Memorat
pocaitu
De-al casei
***

Karma: -26
Deconectat Deconectat

Mesaje: 141



Vezi Profilul
« Răspunde #60 : Octombrie 19, 2006, 17:55:47 »

 Iau WA pe toate testele cu toate ca mie imi merge bine .
 Am auzit ca daca vrei sa citesti cu scanf() un numar long int nu faci scanf("%ld",&x); ca in linux nu merge . E adevarat  ?
Memorat

This is not a signature ! I repeat, this is not a signature !
u-92
Vizitator
« Răspunde #61 : Octombrie 19, 2006, 19:34:44 »

poti face un program la a+b sa testezi
legat de WA, ai generat teste aleator si programul tau da acelasi raspuns cu brute-force`ul?
Memorat
ditzone
Vizitator
« Răspunde #62 : Octombrie 20, 2006, 11:58:20 »

Tipul de date e long long.
Citirea si afisarea se aface cu %lld
Memorat
pocaitu
De-al casei
***

Karma: -26
Deconectat Deconectat

Mesaje: 141



Vezi Profilul
« Răspunde #63 : Octombrie 20, 2006, 20:47:51 »

 Gata , am luat 100  Yahoo!
 
Citat
legat de WA, ai generat teste aleator si programul tau da acelasi raspuns cu brute-force`ul?
   Da, numai ca testele le faceam eu
  Ar trebui specificat de long long in restrictiile problemei
Memorat

This is not a signature ! I repeat, this is not a signature !
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #64 : Octombrie 27, 2006, 18:59:02 »

chiar nu inteleg de ce iau WA pe toate testele. Fac cu arbori de intervale, folosesc long long . Toate testele care le dau imi ies.   Embarassed
poate sa ma ajute cineva?
[ii trimit sursa mea eventual ?]
« Ultima modificare: Octombrie 27, 2006, 20:58:46 de către cos_min » Memorat

vid...
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #65 : Octombrie 28, 2006, 16:41:49 »

 Embarassed in sfarsit 100. multumesc celor care m-au ajutat. [greseala era ca declar prea mica dimensiunea arborelui  Fighting]
Memorat

vid...
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #66 : Martie 27, 2007, 19:47:50 »

iau 212ms si 216 ms  Brick wall .. cred k renunt la ea
Memorat
marcelcodrea
Nu mai tace
*****

Karma: 173
Deconectat Deconectat

Mesaje: 217



Vezi Profilul
« Răspunde #67 : Martie 27, 2007, 20:12:30 »

Probabil ca ai timpi de 212 si 216 ms pt ca evaluatorul intrerupe rularea programului dupa expirarea timpului limita , deci nu e relevant !  peacefingers
Memorat
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #68 : Martie 27, 2007, 20:41:10 »

Daca faci cu arbori de intervale renunta Tongue incearca AIB intra lejer in timp  Thumb up
Memorat

vid...
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #69 : Martie 28, 2007, 08:09:16 »

sunt doar clasa a 10'a.. si inca nu am invatzat chestii d'astea ca si "arbori indexati binari".. o alta solutie mai accesibila exista? Eh?
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #70 : Martie 28, 2007, 08:18:40 »

nu prea, dar daca ai sa citesti un articol despre arbori indexati binari (google it) cu siguranta vei intelege.
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #71 : Martie 28, 2007, 20:30:49 »

Nu e greu chiar daca esti a zecea... Si daca vrei sa treci peste exprimarea "pretentioasa" de aib, incearca sa vezi de fapt ce ar trebui sa aplici aici... si ai sa vezi ca nu e mare lucru...
Poate nu m-am exprimat eu cum trebuie, dar ideea ar fi sa nu te sperii de un nume de algoritm care pare mai ciudat...
Memorat
vanila0406
De-al casei
***

Karma: -174
Deconectat Deconectat

Mesaje: 107


Be wise,be smart,be like me!


Vezi Profilul
« Răspunde #72 : Martie 28, 2007, 23:37:10 »

e un articol in ginfo foarte bun despre arborii indexati binar...asta e linku: http://www.ginfo.ro/revista/13_1/focus.pdf sper sa fie de folos  Very Happy
Memorat

Only one thing I know:Death is the best way to a better life.
Darth_Niculus
De-al casei
***

Karma: -13
Deconectat Deconectat

Mesaje: 143



Vezi Profilul
« Răspunde #73 : Iulie 02, 2007, 20:09:41 »

 Deci problema asta ma scoate din sarite de ceva timp.....   cand o rezolv cu AIB iau 100 pct.......... cand incerc cu arbori de intervale iau 0 pct..... cu TLE pe toate testele..... pai ambele surse au aceeasi complexitate adica O(MlogN).
 Chiar ar trebui sa fie un pic mai rapid cu arbori de intervale.... pt ca nu tre sa interoghez de 2 ori arborele ca sa aflu care e suma in Query.....   
Memorat
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #74 : Iulie 02, 2007, 22:04:23 »

Din contra, un aib merge mai bine decat un arbore de intervale Smile [dar la problema asta merge de 100 si cu arbori de intervale]
Memorat
Pagini: 1 2 [3] 4 5   În sus
  Imprimă  
 
Schimbă forumul:  

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