Prawie 25 lat Olimpiady Informatycznej

Podobne dokumenty
Wprowadzenie do algorytmów / Thomas H. Cormen [et al.]. - wyd. 7. Warszawa, Spis treści. Wprowadzenie 2

Grafy i sieci w informatyce - opis przedmiotu

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Algorytmy i struktury danych

Matematyka dyskretna

Algorytmy i struktury danych Metody programowania Języki i paradygmaty programowania Nazwa jednostki prowadzącej przedmiot Instytut Matematyki

KARTA KURSU. Algorytmy, struktury danych i techniki programowania. Algorithms, Data Structures and Programming Techniques

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

KARTA PRZEDMIOTU. Algorytmy i struktury danych, C4

Rozdział 4. Algorytmy sortowania 73 Rozdział 5. Typy i struktury danych 89 Rozdział 6. Derekursywacja i optymalizacja algorytmów 147

Szczegółowy program kursów szkoły programowania Halpress

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA Pod auspicjami Polskiej Akademii Nauk Warszawa, ul. Newelska 6, tel.

KARTA MODUŁU KSZTAŁCENIA

Załącznik Nr 5 do Zarz. Nr 33/11/ Kod przedmiotu:aisd2

Kierunek: Informatyka. Przedmiot:

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3

Algorytmy i struktury danych.

KARTA MODUŁU KSZTAŁCENIA

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Zagadnienia na egzamin licencjacki

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

Złożoność obliczeniowa klasycznych problemów grafowych

Fakultet Informatyczny Algorytmy i ProgramowanIe (API)

ID2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki stacjonarne

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Spis treści. Rozdział 2. Rekurencja Definicja rekurencji Ilustracja pojęcia rekurencji Jak wykonują się programy rekurencyjne?...

Spis treści. Przedmowa. Wprowadzenie 0.1 Czym jest matematyka dyskretna?... XIII 0.2 Podstawowa literatura... XIV

IZ2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki niestacjonarne

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010.

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Algorytmika i pseudoprogramowanie

PROGRAM KOŁA INFORMATYCZNEGO

Programowanie obiektowe

Sprawozdanie do zadania numer 2

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV

PRZEWODNIK PO PRZEDMIOCIE

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Projektowanie i analiza algorytmów

Zagadnienia na egzamin dyplomowy

Technologie informacyjne Wykład VII-IX

Ogólne wiadomości o grafach

Algorytmiczna teoria grafów

TEORETYCZNE PODSTAWY INFORMATYKI

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Wykład 10 Grafy, algorytmy grafowe

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

Cena szkolenia. Opis kursu

Wymagania edukacyjne i sposoby sprawdzania edukacyjnych osiągnięć uczniów z informatyki - klasy II zakres rozszerzony

Wstęp do Programowania potok funkcyjny

Wstęp do programowania

Matematyka dyskretna

Zaawansowane algorytmy i struktury danych

Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej

Symulacje komputerowe

WYMAGANIA EGZAMINACYJNE Egzamin maturalny z INFORMATYKI

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Wstęp do Programowania potok funkcyjny

Kurs MATURA Z INFORMATYKI

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016. Forma studiów: Stacjonarne Kod kierunku: 11.

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólnoakademicki / praktyczny)

PRZEDMIOTOWY SYSTEM OCENIANIA INFORMATYKA.

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Programowanie Komponentowe Zarządzanie obiektami: kontenery

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH

Matematyczne Podstawy Informatyki

ZAGADNIENIA DO EGZAMINU DYPLOMOWEGO NA STUDIACH INŻYNIERSKICH. Matematyka dyskretna, algorytmy i struktury danych, sztuczna inteligencja

Zał. nr 4 do ZW. Wykład Ćwiczenia Laboratorium Projekt Seminarium 30 30

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski

Programowanie obiektowe

1. Algorytmika. WPROWADZENIE DO ALGORYTMIKI Wprowadzenie do algorytmów. Pojęcie algorytmu.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

Programowanie dynamiczne i algorytmy zachłanne

Program nauczania informatyki w gimnazjum Informatyka dla Ciebie. Modyfikacja programu klasy w cyklu 2 godzinnym

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

Zagadnienia na egzamin dyplomowy dla kierunku Informatyka. studia I stopnia rok akademicki 2019/2020

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40

Egzaminy i inne zadania. Semestr II.

Systemy operacyjne 14. Co to jest system operacyjny i jakie są jego podstawowe zadania? Scharakteryzować podstawowe struktury systemów operacyjnych i

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Spis treści. Przedmowa... 9

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Wrocław, Wstęp do informatyki i programowania: liczby pierwsze. Wydział Matematyki Politechniki Wrocławskiej.

PRZEDMIOTOWY SYSTEM OCENIANIA

Teoria grafów - Teoria rewersali - Teoria śladów

Wykład Ćwiczenia Laboratorium Projekt Seminarium Liczba godzin zajęć zorganizowanych w Uczelni ,5 1

Podstawy programowania. Podstawy C# Przykłady algorytmów

Matematyczne Podstawy Informatyki

Algorytmy i Struktury Danych.

PRZEWODNIK PO PRZEDMIOCIE

TEORIA GRAFÓW I SIECI

Rozkład materiału do realizacji informatyki w szkole ponadgimnazjalnej w zakresie rozszerzonym

Zaawansowane algorytmy. Wojciech Horzelski

Wybrane zagadnienia teorii liczb

Transkrypt:

Instytut Informatyki Uniwersytetu Wrocławskiego 8 października 2016

Ostrzeżenie Nie znam zadań na OI, więc zagadnienia podawane jako podstawowe/zaawansowane nie są w żaden sposób wskazówką n.t. przyszłych treści zadań na OI. Ostrzeżenie Sporo rzeczy na slajdach to moje prywatne opinie i obserwacje, a nie oficjalne stanowisko kogokolwiek z ramienia OI.

I etap Nie zmieniło się od lat: miesiąc czasu na rozwiązanie pięciu zadań, dość popularne są progi kwalifikacyjne rzędu 100 punktów. Zmiany: podzadania.

II etap Nie zmieniło się od lat: Zmiany: dzień próbny (jedno zadanie, 3 h) oraz dwa dni właściwe (dwa zadania, 5 h), wyniki nie są jawne, widać tylko wyniki na testach przykładowych. podzadania, testy ocen, bardzo duża wariancja progów kwalifikacyjnych do finału.

Finał Nie zmieniło się od lat: Zmiany: dzień próbny (jedno zadanie, 3 h) oraz dwa dni właściwe (trzy zadania, 5 h), podzadania, testy ocen, odsłanianie wyników, trudność zadań, wyższe wyniki zawodników, spryt zawodników, częste udane oszustwa organizatorów.

C++11 listy inicjalizacyjne (std::vector<int> x = {1, 2, 3};) automatyczne określanie typu (auto), pętle for oparte na zakresie (for (int x : tab)), funkcje i wyrażenia lambda ([](int a, int b){ return a + b; }), typy krotkowe (std::tuple), nowe kontenery STL (std::unordered set oraz std::unordered map), wyrażenia regularne (#include <regex>), inteligentne wskaźniki (std::shared ptr, std::unique ptr).

Czynniki kluczowe w odniesieniu sukcesu na II etapie znajomość podstawowych algorytmów i struktur danych, inteligencja, zdolność kojarzenia faktów, zauważania powiązań i zależności, umiejętność szybkiej implementacji wymyślonych rozwiązań, umiejętność testowania, nie popełnianie błędów.

Podstawowe algorytmy i struktury danych rekurencja, przeszukiwanie z nawrotami, metoda dziel i zwyciężaj, wyszukiwanie binarne (oraz jego zastosowania) (zadanie Test na inteligencję), obsługa dużych liczb, algorytmy zachłanne, programowanie dynamiczne (zadanie Konduktor), maski bitowe (zadanie Wiedźmak), teoria gier (nimbery, funkcja mex, twierdzenie Sprague Grundy ego) (zadanie Kamyki).

Podstawowe algorytmy i struktury danych Struktury danych: stos, kolejka, kopiec binarny, drzewo BST, statyczne drzewo przedziałowe (zadanie Łyżwy), Union Find (zadanie Biura).

Podstawowe algorytmy i struktury danych Teoria liczb: algorytm Euklidesa i rozszerzony algorytm Euklidesa, odwrotność modularna (zadanie Wyszukiwanie wzorca), dzielniki liczb, rozkład na czynniki pierwsze, sito Eratostenesa (zadanie Sejf), szybkie potęgowanie modularne.

Podstawowe algorytmy i struktury danych Kombinatoryka: podzbiory, permutacje (silnia), kombinacje (symbol Newtona) (zadanie Permutacja), interpretacje kombinatoryczne, zasada włączeń i wyłączeń.

Podstawowe algorytmy i struktury danych Algorytmy tekstowe: najdłuższy podciąg wspólny, wyszukiwanie wzorca i funkcja π (zadanie Szablon), haszowanie podsłów (zadanie Korale), okresy słów, pierwiastki słów, lemat o okresowości (zadanie Kafelki), algorytm Manachera (zadanie Antysymetria).

Podstawowe algorytmy i struktury danych Algorytmy grafowe: reprezentacja listowa i macierzowa grafu, przeszukiwanie w głąb (DFS) (zadanie Gildie) i wszerz (BFS), kolejność pre-order, post-order, in-order, sortowanie topologiczne, silnie spójne składowe (zadanie Profesor Szu), minimalne drzewo rozpinające (zadanie Labirynt), cykl Eulera, grafy funkcyjne (zadanie Randka), algorytm Dijkstry (zadanie Sumy).

Podstawowe algorytmy i struktury danych Geometria obliczeniowa: iloczyn skalarny i iloczyn wektorowy, technika zamiatania, najbliższa i najdalsza para punktów, sortowanie kątowe, otoczka wypukła (zadanie Wyspy).

Czynniki kluczowe w odniesieniu sukcesu na finale znajomość trudniejszych algorytmów i struktur danych, znajomość sztuczek algorytmicznych, strategia, zachowanie spokoju, elastyczność dla zmieniających się warunków, intuicja i wyczucie, szybkość, nie popełnianie błędów, wytrenowanie.

Trudniejsze algorytmy i struktury danych przepływy (zadanie Mosty), skojarzenia w grafach dwudzielnych, macierze (zadanie Chomiki), dwuspójne składowe, test Millera Rabina (zadanie Najdzielniejszy dzielnik), drzewo palindromiczne.

Sztuczki algorytmiczne meet-in-the-middle (zadanie Szyfr), Mo s algorithm, równoległe wyszukiwanie binarne (zadanie Meteory), dekompozycja heavy light.

Olimpiada sport umysłowy, długie przygotowania, ciężka praca, potrzebny trener, mentor, krzywa rozwoju nie jest zbliżona do funkcji liniowej.

Wyjątkowość Olimpiady mało zadań, dużo czasu, prawie bez limitu na trudność zadań, zadania wymagają pomysłu, wiele różnych ścieżek z pozoru sensownych prowadzi do niczego.

Dlaczego warto? Dla wszystkich: algorytmy i struktury danych (szczególnie na I i II etapie) przydatne w pracy informatyka, umiejętność programowania, motor do wzmożonej pracy nad sobą, nauka jak się uczyć, znajomość własnych sił i słabości. Dla najlepszych: stypendia, prestiż, docenienie, widoczny sens ciężkiej pracy, duża i silna sieć kontaktów, łatwiejsza kariera naukowa, możliwość pracy w wielkiej korporacji za granicą.