Если ты не можешь освоить теорию в виде текста, задумайся, а стоит ли тебе вообще заниматься программированием?)
Документации текстом обычно люди пишут. Даже на CodeForces ребята пишут свои статейки, где описывают разные оптимизации, структуры данных, алгоритмы. Например, PBDS_Tree, которая часто может помогать на финалах перечневых олимпиадок первого уровня.
Есть книга Лааксонена "Олимпиадное программирование". В ней он описал все алгоритмы, которые могут встречаться на олимпиадах по информатике. Думаю, этого достаточно.
Если хочешь прям какой-то курс. Я надеюсь, это не воспримется, как реклама, то на foxford есть хороший курс по подготовке к олимпиадам по программированию.
А вообще в олимпиадном(спортивном) программировании сильно решает твой опыт нарешки, потому что в задачах нужно быстро находить идеи решения.
Как говорил Брюс Ли: "Я не боюсь человека, который знает 10000 алгоритмов. Я боюсь человека, который знает 1 алгоритм и решал с помощью него 10000 задач."