mishgun_15
@mishgun_15
Обучаюсь программировать

Как победить в олимпиаде по программированию?

Я очень заинтересовался олимпиадным программированием, но, столкнувшись с огромным количеством тем для разбора и с великим множеством задач для тренировок в интернете, я запутался.
  1. Подскажите, пожалуйста, с чего же все-таки именно начать?
  2. Задачи на какие темы встречаются чаще всего?
  3. Сколько времени для подготовки понадобится, чтобы хорошо выступить, а в идеале победить в олимпиаде?

Я уже 2 года изучаю C++ и собираюсь участвовать в олимпиадах для одиннадцатиклассников, если у кого-нибудь есть опыт в олимпиадном программировании, буду очень благодарен, если поделитесь своим опытом подготовки, с какими трудностями сталкивались и как их преодолевали.

Спасибо большое всем кто ответил!
  • Вопрос задан
  • 361 просмотр
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега Программирование
software engineer
1. Пользуясь поиском, находишь результаты и задачи уже прошедших олимпиад.
2. Пользуясь тетрадкой и ручкой пробуешь решить эти задачи, чтобы ты понимал смысл их решения на логическо-математическом уровне.
3. Потом пробуешь написать программу, которая решает конкретную задачу.

Таким образом, программирование - это последний этап. Сперва необходимо понимать как именно вычисляется/находится решение хотя бы руками на бумажке.

Повторяешь шаги 1-3 раз 10 с разными задачами.

Потом находишь организатора или тренера в вашем учебном заведении, который у вас занимается олимпиадами, рассказываешь ему что сделал и участвуешь.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@dimoff66
Кратко о себе: Я есть
Насколько я понимаю в олимпиадах побеждают те, кого специально на них натаскивают преподаватели в специализированных классах. Но надо ли вам это? Просто участвуйте и получайте удовольствие от решения. Хотя лично для меня удовольствие решать задачи на скорость а не на качество - сомнительное занятие.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Подскажите, пожалуйста, с чего же все-таки именно начать?
1. Нужно научиться понимать текст и требования задачи.
2. Находить несколько (а лучше - все возможные) вариантов (алгоритмов) решения поставленной задачи (а их всегда более 1-го), и выбирать наиболее быстрый.
3. Научиться чётко и по шагам формулировать алгоритм/блок-схему решения (в голове или на бумаге) до начала написания кода в целях экономии времени на отладку кода и при поиске и устранении возможных ошибок.
4. Научиться чётко и с первой попытки конвертировать алгоритм в код на выбранном языке программирования.

Вот, для разминки: попробуйте начать с написания алгоритма для поиска решения полной сборки кубика-Рубика (все грани одного цвета) из любого начального состояния с наименьшим количеством задействованных (вращаемых) граней.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы