Jestem w trakcie przygotowań do najbliższej Olimpiady Informatycznej i mam pytanie odnośnie źródeł nauki :)
Dotychczas zaglądałem jedynie do Symfonii C++ (jedynie pierwszy tom, aby załapać podstawy C++) oraz do książki Thomasa Cormena "Wstęp do algorytmów". Oczywiście, po zakończeniu lektury Cormena zamierzam przystąpić w 100% do praktyki czyli do przerabiania zadań z poprzednich olimpiad przy wsparciu niebieskich książeczek. No i właśnie tu pojawia się moje pytanie czy taki plan jaki sobie "przygotowałem" jest dobry? Czy może lepiej jednak już teraz starać się przerabiać zadania olimpiady, a jedynie w miare potrzeb sięgać po Cormena? Ewentualnie jeszcze inaczej.. sięgać po jakąś inną książke.. Wcześniej starałem się rozwiązywać wszystkie zadania na spoj.pl jednak ostatnimi czasy mam ograniczony czas (związane jest to ze szkołą).
O odpowiedzi proszę jedynie osoby siedziące w temacie ;)
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
Nie ograniczaj się do pierwszej części Symfonii, C++ zawiera wiele interesującego materiału, zwłaszcza w bibliotece standardowej.
Postaraj się załapać jak działają iteratory w C++, to klucz do zrozumienia STLa. W STL masz mnóstwo bardzo użytecznych funkcji. Musisz wiedzieć jakie funkcje masz w nagłówku algorithm, do czego służą i jakie problemy możesz nimi rozwiązywać.
Sortowania, wyszukiwania, w tym binarne, wstawianie do uporządkowanych kolekcji bez zaburzania porządku, to wszystko pozwala zaoszczędzić wiele minut pisania i wiele godzin wyszukiwania błędów.
Podobnie musisz wiedzieć co potrawią klasy string, vector, list oraz stosy i kolejki, te narzędzia są niesamowicie przydatne w rozwiązywaniu problemów.
Jeśli ten "Wstęp do algorytmów" to "Wprowadzenie do Algorytmów" Cormena to uważaj z tą książką, jest naprawdę trudna. Nie widziałem zadań do jakich podchodzisz, ale nie wiem czy jest sens byś zgłębiał techniki dowodzenia złożoności obliczeniowej algorytmów. Mogę Ci śmiało powiedzieć, ze dokładnymi obliczeniami zajmują się matematycy a informatykom zwykle wystarcza "świadomość" jakiej klasy złożoność ma dany algorytm.
Proponuję abyś lekturę Cormena zrobił pobieżnie, dowiedz się jakie masz tam algotymy, jakie problemy one rozwiązują, jakie mają złożoności.
Gdy będziesz rozwiązywał zadania wróć i konkretnych algorytmów i postaraj się zrozumieć jak działają.