X Mistrzostwa Wielkopolski w Programowaniu Zespołowym

XMWPZ2_smallW tym roku po raz dziesiąty odbędą się Mistrzostwa Wielkopolski w Programowaniu Zespołowym (MWPZ), których jednym z oficjalnych patronów medialnych jest Notatnik Programisty!
Mistrzostwa Wielkopolski w Programowaniu Zespołowym są największą polską imprezą programistyczną. MWPZ mają charakter otwarty i są bezpłatne!
Termin zawodów zaplanowany jest w dniach 4-5 grudnia 2015 roku w Poznaniu i będzie to świetna okazja do zweryfikowania sił w zespołowym rozwiązywaniu problemów.
Organizatorami wydarzenia są

Lokalizacja

WMI UAM
Wydział Matematyki i Informatyki
Uniwersytet im. Adama Mickiewicza
ul. Umultowska 87
61-614 Poznań

Harmonogram

Piątek (4 grudnia 2015)
11.00-16.00 – Rejestracja, atrakcje (miejsce: TBA)
13.30-14:00 – Uroczyste rozpoczęcie zawodów
14.00-16:45 – Wykłady/prezentacje
16.45-17.30 – Przejazd do laboratoriów zawodników startujących na WMI UAM (miejsce TBA)
17:45-18.45 – Sesja próbna (miejsce: TBA)
19.00-19.30 – Omówienie problemów technicznych (miejsce: TBA)
19.40-20.15 – Przejazd autobusem do centrum i hoteli.

Sobota (5 grudnia 2015)
7:40-8.00 – Zbiórka na placu Mickiewicza
8.00-9.00 – Przejazd z hotelu i centrum do laboratoriów
9.00-9.15 – Zajmowanie stanowisk (miejsce: TBA)
9.15-14.15 – Zawody (miejsce: TBA)
14.30-15:30 – Pizza (miejsce: TBA)
15:30-16:15 – Przejazd zawodników na miejsce zakończenia zawodów ()
16.45-17.30 – Uroczyste zakończenie (miejsce: TBA)
17.30-19.30 – Bankiet (miejsce: TBA)

Jak to wygląda w praktyce?

  1. Każda drużyna składa się z trzech osób.
  2. I każda drużyna ma do dyspozycji tylko jeden komputer. Umiejętne rozplanowanie podziału komputera jest ważną częścią strategii.
  3. Zawodnicy mogą mieć ze sobą wszelkiego rodzaju materiały w formie papierowej (książki, zeszyty, listingi programów, dokumentacje, wydruki). Jednak zabronione jest korzystanie z materiałów elektronicznych i z internetu.
  4. Drużyna otrzymuje kilka zadań, które należy rozwiązać przygotowując odpowiedni program / algorytm.
  5. Według indywidualnych umiejętności członków zespołu sami decydujecie o przydziale zadań.
  6. Rozwiązania wysyłacie do sprawdzenia w trakcie trwania konkursu i są one oceniane na bieżąco. Zrobicie to poprzez specjalny system WWW, który skompiluje przygotowane programy i przeprowadzi szereg testów.
  7. W odpowiedzi otrzymacie jeden z dwóch możliwych wyników testu: zaakceptowany lub odrzucony. A zatem jeżeli chodź jeden z przypadków testowych nie przejdzie testu nie zaliczacie tego zadania. Jednak możecie w takim przypadku wrócić do stanowiska, wprowadzić poprawki i spróbować wysłać rozwiązanie ponownie.
  8. Gdy Sprawdzarka odrzuci rozwiązanie, zwróci jeden z komunikatów informujących o rodzaju błędu:  Compile Error (błąd kompilacji), Runtime Error (błąd wykonania), Time Limit Exceeded (przekroczony limit czasu), Wrong Answer (błędna odpowiedź) lub Rule Violation (naruszenie zasad zawodów).
  9. Sprawdzarka daje również możliwość zadawania pytań sędziom. Korzystajcie z niej, żeby poprosić o wyjaśnienie niejasności w treści zadania (lub w formie zawodów), zgłosić błąd w treści, gdy nie wiecie co począć z Compile Error lub gdy macie problemy z komputerem.
  10. Kolejną ważną funkcjonalnością Sprawdzarki jest możliwość drukowania programów (wydruk zostanie Wam przyniesiony do stanowiska w ciągu paru minut). Jest to ważne ponieważ komputer jest tylko jeden i jak jedna osoba pisze program to druga w tym czasie może szukać na wydruku błędów w swoim programie.
  11. Oprócz wysyłania zadań Sprawdzarka będzie Wam służyć do śledzenia stanu rywalizacji. Na bieżąco wyświetlany będzie aktualny ranking drużyn, mówiący kto zrobił ile zadań, jakie zadania i w ile czasu.
  12. Na godzinę przed końcem ranking jest zamrażany. Oznacza to, że nie będą na nim uaktualniane informacje. Celem tego zabiegu jest zwiększenie emocji pod koniec rywalizacji.
  13. Ostateczne wyniki zostaną przedstawione dopiero na uroczystości zakończenia Mistrzostw.

 

Praktyczne wskazówki

  1. Doświadczenie pokazuje, aby najpierw rozpoznać te bardzo łatwe zadania i zabrali się za nie w pierwszej kolejności.
  2. Dobrym pomysłem będzie obserwowanie rankingu. Zadania, które sporo drużyn ma rozwiązane są z pewnością łatwe 🙂
  3. Zabierając się za konkretne zadanie, na samym początku musicie koniecznie dobrze zrozumieć jego treść.
  4. Jeśli jesteście pewni, że wszystko w zadaniu jest dla Was jasne, można zabrać się za wymyślanie jak je najlepiej rozwiązać.
  5. Mało praktyczne jest przy rozwiązywaniu zadania od razu siadać do komputera, ponieważ będzie Was w zespole trzech.
  6. Na początku najlepiej wziąć kartkę, długopis i spokojnie pomyśleć nad algorytmem rozwiązującym zadany problem.
  7. Dopiero gdy jesteście pewni, że macie dobry pomysł na rozwiązanie, możecie usiąść do klawiatury i zacząć je implementować.
  8. Taktyka zależy od Was, zrobicie jak chcecie.

 

Zadania

Zadania w swej formie podobne są do tych, z którymi być może mieliście okazję się zetknąć na Olimpiadzie Informatycznej, Potyczkach algorytmicznych, bądź innych zawodach w programowaniu (np. Internetowych Mistrzostw Polski w Programowaniu).

Zadanie przykładowe – Ciąg Fibonacciego

 

Opis

Ciąg Fibonacciego to ciąg liczb całkowitych, określonych rekurencyjnie w następujący sposób.

F0 = 0
F1 = 1
Fn = Fn-1 + Fn-2, dla n ≥ 2

Początkowe wyrazy ciągu to: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, …

Zadanie

Dla danego N, podaj wartość N-tej liczby Fibonacciego modulo 10000 (czyli resztę z dzielenia przez 10000).

Specyfikacja wejścia

Pierwsza linia wejścia zawiera liczbę całkowitą D (1 ≤ D ≤ 50), oznaczającą liczbę zestawów danych, które dalej pojawią się na wejściu. Każdy zestaw składa się z jednej linii, zawierającej dokładnie jedną liczbę całkowitą N(1 ≤ N ≤ 20000).

Specyfikacja wyjścia

Dla każdego zestawu danych na wyjściu należy wypisać, w osobnej linii, jedną liczbę całkowitą, będącą resztą z dzielenia FN modulo 10000.

Przykład

Tutaj możecie prześledzić rozwiązanie tego przykładowego zadania.

 

Z czego się uczyć?

Dobrą propozycją jest książka Piotra Stańczyka „Algorytmika praktyczna”, w której autor dzieli się swoimi i kolegów doświadczeniami w konkursach algorytmicznych. Dlaczego? Dlatego, że są to doświadczenia osób, które potwierdziły swoją wiedzę i umiejętności algorytmiczno-programistyczne w konfrontacji z rówieśnikami z całego świata. Piotr to dwukrotny laureat krajowej Olimpiady Informatycznej oraz dwukrotny medalista Bałtyckiej Olimpiady Informatycznej. Wraz z kolegami zwyciężał w Adademickich Mistrzostwach Polski w Programowaniu Zespołowym i zdobywał medale w Adademickich Mistrzostwach Europy Środkowej.

Przypominam, że na konkurs możecie wziąć ze sobą dowolne książki!

Autor:

ISBN: 590-4-8070-0823-6

Format: , stron:

Data wydania:

Opis: PAKIET OBEJMUJE KSIĄŻKI: "Algorytmika praktyczna" Książka ta różni się od znanych na polskim rynku pozycji poświęconych algorytmice, dotyczy bowiem jej strony praktycznej. Taki sposób potraktowania tego działu informatyki wynika z coraz większego zainteresowania zarówno uczniów, jak i studentów udziałem w różnego rodzaju konkursach programistycznych. Czytelnik znaj

Cena: 62.50zł

Ciekawostka z książki Piotra Stańczyka

Czy kolejność umieszczania danych w tablicach ma znaczenie?
Definiujemy tablicę składającą się z 15000 wierszy i kolumn:

Wersja pierwsza – umieszczanie danych „wierszami”:


Wersja druga – umieszczanie danych „kolumnami”:

Czas wykonania wersji pierwszej (0,9s.) jest ponad dziesięciokrotnie krótszy od wersji drugiej (11s.).

Dzieje się tak, ponieważ w wersji pierwszej wykorzystujemy pamięć podręczną procesora podczas gdy w wersji drugiej program musi wykonać wiele „skoków” po pamięci. Szybkość działania pamięci podręcznej procesora jest dziesięciokrotnie większa od szybkości pracy pamięci RAM.

Piotr Stańczyk w swojej książce poświęca osobny dział elementom strategii podczas zawodów poruszając takie zagadnienia jak:

  • szacowanie oczekiwanej złożoności czasowej
  • strategia pracy w drużynie
  • szablony kodu
  • plik makefile
  • parametry kompilacji programów

Internetowe zasoby wiedzy

 

Polecane przeze mnie:

  • SPOJ – Umożliwia sprawdzanie i podnoszenie swoich umiejętności algorytmicznych w różnych językach programowania
  • Polski SPOJ – Wersja polska SPOJa.
  • Codility – Lekcje algorytmiki. Platforma umożliwia ćwiczenie online w wielu językach.
  • CodeFights.com – Serwis udostępniający świetną zabawę w wyszukiwaniu błędów w kodzie (Python, JS, C++ lub Java).

Linki konkursowe

Historia MWPZ:

Wikipedia

To również może Cię zainteresować:

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *