Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sd-ca:challenge [2015/03/18 11:56]
alexandru.olteanu
sd-ca:challenge [2015/04/23 08:37] (current)
alexandru.olteanu
Line 1: Line 1:
-SD Challenge 2015 se va desfasura in etape: +SD Challenge 2015 se va desfasura in etape:  
-  * in prima etapa primiti doar enuntul +  * in prima etapa primiti doar enuntul ​(deadline 22 aprilie) 
-  * in a doua etapa primiti ​o prima indicatie ​de rezolvare +  * in a doua etapa primiti ​indicatii ​de rezolvare ​(deadline 17 mai) 
-  * in a treia etapa primiti o alta indicatie de rezolvare +
-  * in a patra etapa primiti o ultima indicatie de rezolvare+
  
 === Enunt === === Enunt ===
Line 21: Line 20:
    * 2 x  - Nika isi pune intrebarea: "In casuta x se afla un bit?"    * 2 x  - Nika isi pune intrebarea: "In casuta x se afla un bit?"
    * 3 x  - Nika isi pune intrebarea: "Care este prima casuta ce contine un bit din dreapta casutei cu numarul x (care la randul ei contine un bit)?"    * 3 x  - Nika isi pune intrebarea: "Care este prima casuta ce contine un bit din dreapta casutei cu numarul x (care la randul ei contine un bit)?"
-   * 4 x  - Nika isi pune intrebarea: "​Dintre toate casutele care au bitul 1 setat, care este de ce-a K-a in ordine crescatoare?"​+   * 4 x  - Nika isi pune intrebarea: "​Dintre toate casutele care au bitul 1 setat, care este de ce-a x-a in ordine crescatoare?"​
  
 Pentru ca Nika este extenuata de la atata scris si nu mai vrea sa gandeasca, va roaga pe voi sa ii raspundeti la intrebari cat mai repede cu putinta. Pentru ca Nika este extenuata de la atata scris si nu mai vrea sa gandeasca, va roaga pe voi sa ii raspundeti la intrebari cat mai repede cu putinta.
Line 35: Line 34:
  
 Pe prima linie se vor gasi douna numere intregi M si N ( 1 <= N, M <= 10^6 ), dimensiunea universului,​ respectiv numarul de operatii scrise de Nika pe foaie. Pe prima linie se vor gasi douna numere intregi M si N ( 1 <= N, M <= 10^6 ), dimensiunea universului,​ respectiv numarul de operatii scrise de Nika pe foaie.
-Pe urmatoarele N linii se vor gasi cate doi intregi tip si x ( 0 <= tip <= 3, 0 <= x < M ), tipul operatiei si pozitia pe care se face operatia.+Pe urmatoarele N linii se vor gasi cate doi intregi tip si x ( 0 <= tip <= 4, 0 <= x < M ), tipul operatiei si pozitia pe care se face operatia.
  
 == Output ==  == Output == 
Line 53: Line 52:
  
 <code c++ output> ​ <code c++ output> ​
 +1
 1 1
 4 4
 </​code>​ </​code>​
  
 +=== Indicatii de rezolvare ===
 +
 +<​note> ​
 +   ​Pentru rezolvarea optima a problemei, trebuie un algoritm mai rapid ca o cautare binara ( de complexitate mai mica decat O(log n) pe querry).
 +   ​Pentru aceasta, va invitam sa va uitati peste urmatoarele structuri de date:
 +       * van Emde Boas trees: ​
 +         * http://​en.wikipedia.org/​wiki/​Van_Emde_Boas_tree
 +         * https://​courses.csail.mit.edu/​6.897/​spring03/​scribe_notes/​L1/​lecture1.pdf
 +       * Xfast trie (o extensie a structurii de date trie):
 +         * http://​en.wikipedia.org/​wiki/​X-fast_trie
 +         * http://​web.stanford.edu/​class/​archive/​cs/​cs166/​cs166.1146/​lectures/​15/​Small15.pdf
 +         * http://​www.borzov.ca/​posts/​xfast/ ​
 +       * Yfast trie (cine baga structura asta e un zeu si merita statuie in curtea Politehnicii) ​
 +
 +</​note>​
 +
 +
 +=== Indicatii de implementare ===
 +
 +Pentru etapa 2, veti avea de implementat functiile din headerul ''​successor.h''​ aflat in arhiva de mai jos. Aceste functii corespund operatiilor de mai sus si se numesc ''​add'',​ ''​erase'',​ ''​find'',​ ''​next''​ si ''​findK''​. Citirea este facuta in intregime de programul ''​main.cpp''​. Voi va trebui sa va scrieti rezolvarea in sursa ''​successor.cpp''​ care apoi va fi compilata in felul urmator ''​g++ -Wall main.cpp successor.cpp -o successor''​.\\
 +{{:​sd-ca:​5-univ-successor.zip|Aici}} puteti gasi arhiva cu sursele, respectiv cateva dintre testele folosite pentru evaluare.
  
 === Indicatii de trimitere === === Indicatii de trimitere ===
sd-ca/challenge.1426672605.txt.gz · Last modified: 2015/03/18 11:56 by alexandru.olteanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0