Tedenski povzetek

  • Splošne informacije

    Priprave na računalniške olimpijade CEOI, BOI, EGOI in IOI potekajo ob ponedeljkih od 16:00 do 19:00 prek sistema Zoom.

    Vsakim pripravam bo sledilo nekaj domačih nalog, ki prispevajo h končnemu rezultatu. Domače naloge morate implementirati samostojno, zaželeno pa je, da se pogovarjate o težavah in idejah, ki ste jih imeli pri njihov reševanju.

    Tekom priprav bodo skozi celo leto potekala tudi izbirna tekmovanja, ki bodo upoštevana pri izboru za CEOI in EGOI. Prvi del predstavljajo tekmovanja COCI (Croatian Open Competition in Informatics), drugi del tekmovanja najtežjih skupin na tekmovanjih FIT in RTK, tretji del pa predstavlja končno izbirno tekmovanje.

    Organizatorji priprav so:

    Za vprašanja glede organizacije se obrnite na Jureta Slaka, za vprašanja glede sistema za domače naloge in izbirnih tekmovanj na Tomaža Hočevarja, za vprašanja glede snovi pa na tistega, ki je vodil konkretne priprave.

    Za vprašanja je na voljo tudi kanal #priprave na Slack-u za tekmovalno programiranje: https://tekm-prog.slack.com/

  • 1. srečanje, 19. 10. - Uvod, Osnovni algoritmi na celih številih

    Predavatelj: Jure Slak

    Opis:

    Literatura:

    Osnovni algoritmi na celih številih:

    • delo s števkami
    • številski sistemi
    • iskanje deliteljev
    • testiranje praštevilskosti za eno število
    • testiranje praštevilskosi za veliko števil: Eratostenovo rešeto
    • razcep veliko števil na prafaktorje s pomočjo Eratostenovega rešeta
    • razcept enega števila na prafaktorje, število deliteljev števila
    • Evklidov algoritem, največji skupni delitelj, najmanjši skupni večkratnik
    • Operacije na bitih: &, |, ^, ~, <<, >>, nastavljanje enega bita, preverjanje ali je i-ti bit prižgan ugasnjen
    • Hitro potenciranje in ideja o obravnavi števil po potencah dvojke


  • 2. srečanje, 2. 11. - Osnovne podatkovne strukture

    Predavatelj: Vid Kocijan

    Opis: Osnovne podatkovne strukture: vrsta, sklad, vrsta s prednostjo, povezani seznam, map, set, heap, časovne zahtevnosti operacij

  • 3. srečanje, 16. 11. - Osnovni algoritmi na seznamih in nizih

    Predavatelj: Filip Koprivec

    Opis: 

    Osnovni algoritmi na seznamih: 

    • urejanje: [bubble, selection, insertion]-sort, [quick, merge, heap]-sort, [counting, bucket, radix]-sort
    • bisekcija

    Predprocesiranje seznamov:

    • kumulativne vsote: poizvedbe na intervalih, spremembe na intervalih
    • korenska dekompozicija (sqrt decomposition, dekompozicija poizvedb)
    • redka tabela (sparse table)
    Osnovni algoritmi na nizih: 

    • iskanje podniza: hashing (Rabin-Karp), z-funkcija, KMP

  • 4. srečanje, 30. 11. - Osnove strategije reševanja problemov

    Predavatelj: Tomaž Hočevar

    Opis: polni pregled (brute-force, rekurzija), deli in vladaj, požrešni algoritmi

  • 5. srečanje, 14. 12. - Dinamično programiranje 1

    Predavatelj: Janez Brank

    Opis: Dinamično programiranje, najdaljše naraščajoče podzaporedje, problem nahrbtnika

  • 6. srečanje, 11. 1. - Dinamično programiranje 2

    Predavatelj: Luka Fürst

    Opis: najdaljše skupno podzaporedje, urejevalna razdalja, dinamično programiranje na drevesih.

  • 7. srečanje, 25. 1. - Osnovni algoritmi na grafih

    Predavatelj: Filip Koprivec

    Opis: Osnovni algoritmi na grafih, pregled v širino, pregled v globino, štetje komponent.

  • 8. srečanje, torek, 9. 2. - Najkrajše poti v grafih

    Predavatelj: Jure Slak

    Opis: Najkrajše poti, Dijkstra, Bellman-Ford, Floyd-Warshall.

  • 9. srečanje, 1. 3. - Minimalna vpeta drevesa

    Predavatelj: Vid Kocijan

    Opis: Union-Find, minimalno vpeto drevo, Kruskal, Prim.

  • ZOTKS tekmovanje v programiranju - 13. 3.

    • 10. srečanje, 15. 3. - Napredne podatkovne strukture

      Predavatelj: Tomaž Hočevar

      Opis: binarno iskalno drevo, trie, druge razširjene podatkovne strukture, še posebej segment tree

    • RTK - 27. 3.

      RTK - Tekmovanje ACM iz računalništva in informatike

      http://rtk.ijs.si/

      https://putka-rtk.acm.si/contests/rtk-2021-3/

      • 11. srečanje, 29. 3. - Geometrija

        Predavatelj: Jure Slak

        Opis: Geometrija: ploščine, vektorski produkt, konveksna ovojnica, kompresija koordinat, presečišča, sweep line.

      • 12. srečanje, 12. 4. - Uporabe DFS

        Predavatelj: Tim Postuvan

        Opis: Topološko urejanje, močno povezane komponente, mostovi in prerezna vozlišča.

      • 13. srečanje, 3. 5. - Dinamično programiranje 3

        Predavatelj: Janez Brank

        Opis: Napredno dinamično programiranje: bitmask DP - TSP, Steiner tree, Convex-hull optimization, Divide and conquer optimization.

      • 14. srečanje, 17. 5. - Izbrana poglavja

        Predavatelj: Tim Poštuvan

        Opis: Fenwick tree, Lowest common ancestor, Bipartite matching, Heavy-light decomposition, Centroid decomposition

      • končno izbirno tekmovanje - 22. 5.

        Tekmovanje bo potekalo na sistemu https://putka-rtk.acm.si od 9:00 do 13:00.