В большинстве олимпиадных задач лежит основа математики, алгоритмов, анализа.
И как в последствии - программирование, техника, инструменты.
А значит нужно во первых подготовиться по базису - математика и алгоритмы.
Притом математика в самом широком смысле: алгебра, комбинаторика, вычислительные методы, алгоритмы, дискретная математика, графы и тд. И каждую тему нужно подробно изучить.
И только на основе всего этого базиса можно качественно решать все задачи.
Естественно никто не отменял логику и образ мышления, это тоже нужно тренировать.
Это все тренируется с практикой, основываясь на теории.
После этого всего, уже закреплять знания в области техники, компьютеризации, алгоритмов, языков программирования, операционных систем, эвристического анализа, криптографии и т.п.
Материал, книги, задачи можно найти по всем вышеизложенным темам просто задав их в качестве параметров поиска в поисковых системах интернета.
Учите, запоминайте, практикуйтесь, и будет вам счастье!