Да, это кажется самый лучший способ. Чисто теория бессмысленна, так как ты не будешь знать контекст применения и где можно его находить. Как вариант, можно ещё порешать тематические контесты заранее почитав про тему. Как пример тренировки СПбГУ на codeforces. Но это лучше делать, когда научишься решать халявки достаточно быстро. Как пример решить div3 контест за отведенное время. После тематических контестов можно попробовать решать контесты индивидуальной интернет олимпиады или подобные тренировки. Рейтинговые контесты кодфорса не особо подходят для подготовки, как мне кажется. А задания прошлых лет региона лучше оставить на конец следующего года, чтобы у тебя был контест для проверки своих сил.