OKI29: Dijkstra (Zadanie Maraton) — CodinGame — Quizy / Nauka / Odkrywanie – Piękno algorytmiki

Znajdowanie najkrótszej drogi:
https://youtu.be/eCSjwO9wu0I?t=8117
oraz CodinGame – nauka programowania/algorytmiki przez tworzenie gier
https://youtu.be/eCSjwO9wu0I?t=8350
to główne tematy zajęć Olimpijskiego Koła Informatycznego.

Dijkstra wymyślił algorytm znajdowania najkrótszej drogi gdy… dowoził dziecko do przedszkola:
https://youtu.be/eCSjwO9wu0I?t=7842

Quizy OKI – jesteśmy współczesnymi odkrywcami nowych lądów!
https://youtu.be/eCSjwO9wu0I?t=10111
Rozwiązywaliśmy prawdziwe naukowe problemy – sami musimy zdefiniować problem, nie wiemy czy jest odpowiedź
https://youtu.be/eCSjwO9wu0I?t=9244
za co dziękuję
https://youtu.be/eCSjwO9wu0I?t=10008

Głównym bohaterem naszych zajęć było zadanie Maraton:
https://youtu.be/eCSjwO9wu0I?t=1199
które pozwoliło nam odkryć ALGORYTM DIJKSTRY – wyszukiwania najkrótszych dróg:
https://youtu.be/eCSjwO9wu0I?t=7937
szczegółowo omówiony w trakcie analizy zadania Maraton
https://youtu.be/eCSjwO9wu0I?t=2074

KOD zadana Maraton/ LINK do treści / OMÓWIENIE:
https://oki.org.pl/maraton/

To było wymagające zadanie.
Ale dobrze jak zadania są trudniejsze niż to co umiemy!
https://youtu.be/eCSjwO9wu0I?t=7792

Krok po kroku symulowaliśmy działanie algorytmu Dijkstry korzystając z tablicy:
https://youtu.be/eCSjwO9wu0I?t=2445
oraz symulowaliśmy działanie algorytmu Dijkstry korzystając z kolejki priorytetowej:
https://youtu.be/eCSjwO9wu0I?t=3792

Algorytm Dijkstry pokazał że nie ma jednego najlepszego podejścia.
Mieliśmy prawdziwą naukową dyskusję kiedy jaki algorytm jest lepszy
https://youtu.be/eCSjwO9wu0I?t=4934

Złożoność algorytmu Dijkstry może być V^2 (wykorzystanie tablicy):
https://youtu.be/eCSjwO9wu0I?t=3401
ale może być również V*logV lub V^2*logV (wykorzystanie kolejki priorytetowej)
https://youtu.be/eCSjwO9wu0I?t=4707

I to jest piękno algorytmiki – wiele możliwości – i my jako eksperci którzy doradzamy!
https://youtu.be/eCSjwO9wu0I?t=5344

Ale mieliśmy też konkluzje.
Pesymistycznie nasze algorytmy różnią się niedużo
Optymistycznie kolejka priorytetowa jest duuuuużo szybsza od tablicy
https://youtu.be/eCSjwO9wu0I?t=5119

A jak jest na Olimpiadzie – kolejka czy tablica?
https://youtu.be/eCSjwO9wu0I?t=5308

Napisaliśmy również kod naszego programu Maraton
https://youtu.be/eCSjwO9wu0I?t=5370
którego najważniejszym elementem było utworzeniu grafu z wagami (odległościami):
https://youtu.be/eCSjwO9wu0I?t=5652
wczytanie grafu:
https://youtu.be/eCSjwO9wu0I?t=5852
oraz sam algorytm Dijkstry:
https://youtu.be/eCSjwO9wu0I?t=6300

Ponieważ kolejka priorytetowa bierze max wartości – my potrzebujemy wziąć najmniejszą – więc na kolejce priorytetowej trzymaliśmy wartości z minusami
https://youtu.be/eCSjwO9wu0I?t=7190
oraz
https://youtu.be/eCSjwO9wu0I?t=7327

Podsumowanie zadania Maraton:
https://youtu.be/eCSjwO9wu0I?t=7809

Ciekawe zagadnienia były w naszych quizach:
Ile krawędzi ma graf pełny / klika:
https://youtu.be/eCSjwO9wu0I?t=285

Pokazaliśmy również moc logarytmu – szczegółowo wyjaśniliśmy sobie czym jest logarytm:
https://youtu.be/eCSjwO9wu0I?t=549

Wytłumaczyliśmy sobie szczegółowo czym jest kolejka priorytetowa:
https://youtu.be/eCSjwO9wu0I?t=792

Nasza Praca Domowa:
https://oki.org.pl/pd29/

Pasja, odkrywanie, radość!
Daniel Olkowski

———–
Zapisz się na newsletter a będziesz na bieżąco:
https://forms.gle/Az61QABG81RNk5oT7

———

Nie dodano jeszcze komentarza, rozpocznij dyskusję pierwszy.

Dodaj komentarz