Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

IV OTWARTE MISTRZOSTWA OPOLA W PROGRAMOWANIU ZESPOŁOWYM

Podobne prezentacje


Prezentacja na temat: "IV OTWARTE MISTRZOSTWA OPOLA W PROGRAMOWANIU ZESPOŁOWYM"— Zapis prezentacji:

1 IV OTWARTE MISTRZOSTWA OPOLA W PROGRAMOWANIU ZESPOŁOWYM
OMÓWIENIE ZADAŃ

2 Problem B – Wędrujący klocek
Cechy klocka: Pozycja Położenie, np. lewy, dolny róg Cechy trasy: Pola odwiedzone przez klocek Ruch: Cztery możliwości Pozycja 1 Pozycja 2 Pozycja 3 3 pozycje x 4 kierunki = 12 wariantów

3 Problem B – Wędrujący klocek
Kolejny ruch: Wyznacz nową pozycję Wyznacz nowe położenie klocka Dodaj zajmowane przez klocek pola do listy pól odwiedzonych Pozycja 1 Pozycja 2 Pozycja 3 Pozycja 1 Pozycja 2 Pozycja 3 W, x-=dl_kl E, x++ N, y++ S, y-=dl_kl S, y- - W, x- - E, x+=dl_kl N, y+=dl_kl Ile razy najczęściej klocek znajdował się na jednym polu? Listę odwiedzonych pół przeszukujemy w czasie kwadratowym szukając współrzędnych, które występują najczęściej

4 Problem C – Zagnieżdżone podzbiory
Gramatyka bezkontekstowa definiująca zagnieżdżony zbiór liczb naturalnych: Produkcje gramatyki L  { E D Lista E  N | L Element listy D  , E D |} Rozwinięcie listy N  NC | C Liczba naturalna C  0 | 1 | 2 | … | 9 Cyfra {1,2,{3,4,{5,6},7,8}} Przykładowe słowo realizowane przez gramatykę Reguły konstrukcji parsera dla gramatyk bezkontekstowych: A  B C A() { B() C() } A  B | C A() { Jeżeli (Pierwszy symbol (B) = s1) B() W przeciwnym wypadku jeżeli (Pierwszy symbol (C) = s2 ) C() W przeciwnym wypadku Błędne słowo } A  s A() { Jeżeli (symbol = s) Czytaj kolejny symbol W przeciwnym wypadku Błędne słowo }

5 Problem C – Zagnieżdżone podzbiory
Reguły realizacji parsera tej gramatyki – konstrukcja funkcji odpowiadających poszczególnym produkcjom Lista() L  { E D { Jeżeli (symbol = { ) Czytaj kolejny symbol W przeciwnym razie Błędne słowo Element_listy() Rozwinięcie_listy() } Element_listy() E  N | L Lista() w przeciwnym razie jeżeli (Liczba naturalna) Przeczytaj tę liczbę w przeciwnym razie

6 Problem C – Zagnieżdżone podzbiory
Rozwinięcie_listy() D  , E D |} { Jeżeli (symbol = , ) Czytaj kolejny symbol Element_listy() Rozwinięcie_listy() w przeciwnym razie jeżeli (symbol = } ) w przeciwnym razie Błędne słowo } Analizuj_słowo() { Czytaj pierwszy symbol Lista() Jeżeli (przeczytane są wszystkie symbole) Poprawne słowo

7 Problem A – Terytorium Niech AMN będzie tablicą, w której
Jeżeli działka na pozycji (i, j) jest wolna, to A[i, j] = maksymalna powierzchnia wolnego prostokąta o wysokości 1 i skrajnej prawej działce na pozycji (i, j). Jeżeli działka na pozycji (i, j) jest zajęta, to A[i, j] = 0. A = Mając tablicę A łatwo możemy wyznaczyć maksymalny wolny obszar prostokątny o narożniku na pozycji (i, j). Wszystko można robić równocześnie z wczytywaniem danych . Złożoność O(M2N). Jest możliwa optymalizacja ze względu na kolejność M i N.

8 Problem D – Cięcie kwadratu
B(N,0) C(N,N) D(0,N) E(N,yE) F(xF,N) AE = [N; yE] ; EF = [xF – N; N – yE] AE EF  N(xF – N) + yE(N – yE) = 0 skąd: xF = N – yE + yE2/N i zadanie już nie jest geometryczne. Szukamy odpowiedzi na pytanie: dla jakich całkowitych i (1 ≤ i ≤ N – 1) wyrażenie i2/N jest całkowite? Jeżeli N ma następujący rozkład na czynniki pierwsze: Odpowiedzią jest 8(r – 1) to i musi być postaci:

9 Problem E – Wielokąty kratowe
Z twierdzenia Picka : W = P – B/2 +1 Wystarczy obliczyć: pole P wielokąta liczbę B punktów kratowych na brzegu wielokąta Uwaga! Wartości iloczynów xiyi+1 lub xi+1yi mogą przekraczać zakres typu long.

10 Problem F – Jak dojechać?
Szukamy takiego v aby: (av4 + bv3 + cv2 + dv) * (s / v) = m tzn. szukamy miejsca zerowego funkcji f(v) = s(av3 + bv2 + cv + d) – m Można zastosować dowolną metodę, np. bisekcji; Newtona.

11 Problem G – Nieuczciwa gra
Załóżmy, że A1 < A2 < A3 oraz B1 < B2 Tylko poniższe przypadki pozwalają zawsze wygrać: 1. A1 < A2 < A3 < B1 < B2 - trzecią kartą może być najniższa spośród pozostałych w talii 2. A1 < B1 < A2 < A3 < B2 - wybieramy najniższą większą od A3 (nie istnieje, gdy A3=51) 3. B1 < A1 < A2 < A3 < B2 - jw. 4. A1 < A2 < B1 < A3 < B2 - wybieramy najniższą większą od A2 (nie istnieje, gdy A2=49) 5. A1 < A2 < B1 < B2 < A3 - jw.

12 Problem H – Krecia robota
Jeśli kopczyki są wierzchołkami grafu, a tunele je łączące – krawędziami, to taki graf jest drzewem. Wniosek: najkrótsza droga jest jedyną drogą łączącą dowolne dwa wierzchołki. Kopczyk poprzedzający nowoutworzony kopczyk możemy nazwać jego rodzicem. Zadanie sprowadza się do znalezienia wspólnego przodka wierzchołków S i T. Sposób numerowania wierzchołków (w grafie skierowanym odpowiada to posortowaniu topologicznemu) pozwala na prosty zapis algorytmu, którego główna część ma postać: if(A[S]<A[T]) {dist+=L[T]; T=A[T]; } else {dist+=L[S]; S=A[S]; } 1 2 4 3 5 8 9 7 Złożoność O(m) , gdzie m – liczba krawędzi.


Pobierz ppt "IV OTWARTE MISTRZOSTWA OPOLA W PROGRAMOWANIU ZESPOŁOWYM"

Podobne prezentacje


Reklamy Google