Salut,
Cel mai bine ar fi sa iti cauti un prof care se ocupe de pregatire pt olimpiada, merge daca gasesti si pe cineva care nu e prof dar care a fost la olimpiade in anii trecuti. Un prof iti poate prezenta informatia crescator ca dificultate, ca sa ai intai baza iar apoi sa faci lucruri din ce in ce mai grele, iti poate face un syllabus personalizat, te poate mentine motivat.
Daca totusi nu ai acces la un prof, cel mai bine ar fi sa te folosesti de: (am incercat sa le enumar in ordine crescatoare a dificultatii)
Aplicatii:
1. TopCoder: Intai si intai ar fi bine sa incepi cu problemele div2 easy de pe TopCoder , faci vreo 20 -25 -> treci la div2 medium etc
FIecare problema de acolo e etichetata in functie de tipul ei: de ex backtracking, recursion, dinamica. Cam asta se cere la clasa a Xa din cate stiu, daca reusesti pana in februarie sa faci cam 50 din fiecare categorie, ar trebui sa n-ai probleme.
2. Arhiva educationala de pe Infoarena, ideea e intai sa faci algoritmii pe foaie sa-i intelegi apoi sa implementezi fiecare algoritm de acolo
Multe chestii de acolo nu se cer la clasa a Xa,
3. Problemele date in anii trecuti la oji/oni clasa IX X . le gasesti la downloads pe infoarena.
4. Ar mai fi si USACO Training Gate, problemele sunt foarte misto organizate acolo
Teorie (asta e tot ce ai nevoie in primul an parerea mea):
1. Tutorialele TopCoder , majoritatea sunt excelente in opinia mea
http://www.topcoder.com/tc?d1=tutorials&d2=alg_index&module=Static2. Cartea Competitive Programming, de Steven Halim (e cam 14$ dar parerea mea ca merita, e o varianta mai scurta a Cormen)
Prima editie o gasesti aici:
http://www.comp.nus.edu.sg/~stevenha/myteaching/competitive_programming/cp1.pdf3. Cormen - Introduction to ALgorithms (o pun la sfarsit deoarece e cam intimidanta pt un beginner), Citeste de aici intai si intai capitolele : structuri de date elementare, sortare, algoritmi greedy si programare dinamica apoi treci la capitolele urmatoare doar cand ai nevoie de ceva anume din ele.
Ideea e cand nu intelegi ceva, sa nu pierzi timpul, sa treci la altceva nou si sa revii la ce n-ai inteles mai tarziu