M
M
Mikhail Markov2020-08-18 13:33:49
Programming
Mikhail Markov, 2020-08-18 13:33:49

How to win the programming olympiad?

I was very interested in Olympiad programming, but faced with a huge number of topics to analyze and with a great many tasks for training on the Internet, I got confused.

  1. Tell me, please, where exactly to start?
  2. What are the most common topics?
  3. How much preparation time will it take to perform well, and ideally win the Olympics?

I have been studying C ++ for 2 years now and I am going to participate in olympiads for 11th graders, if anyone has experience in programming olympiads, I will be very grateful if you share your training experience, what difficulties you encountered and how you overcame them.

Thanks a lot to everyone who replied!

Answer the question

In order to leave comments, you need to log in

3 answer(s)
S
Saboteur, 2020-08-18
@mishgun_15

1. Using the search, you can find the results and tasks of the Olympiads that have already passed.
2. Using a notebook and a pen, you try to solve these problems so that you understand the meaning of their solution at the logical and mathematical level.
3. Then you try to write a program that solves a specific problem.
So programming is the last step. First you need to understand exactly how the solution is calculated / found, at least by hand on a piece of paper.
You repeat steps 1-3 times 10 with different tasks.
Then you find an organizer or trainer in your educational institution who is involved in the Olympiads, tell him what you did and participate.

D
Dmitry, 2020-08-18
@dimoff66

As far as I understand, Olympiads are won by those who are specially trained for them by teachers in specialized classes. But do you need it? Just participate and enjoy the solution. Although for me personally the pleasure of solving problems for speed and not for quality is a dubious occupation.

X
xmoonlight, 2020-08-18
@xmoonlight

Tell me, please, where exactly to start?
1. You need to learn to understand the text and the requirements of the task.
2. Find several (and better - all possible) options (algorithms) for solving the task (and there are always more than 1 of them), and choose the fastest one.
3. Learn to clearly and step by step formulate an algorithm / flowchart of a solution (in your head or on paper) before writing the code in order to save time on debugging the code and when searching for and eliminating possible errors.
4. Learn clearly and on the first try to convert the algorithm into code in the chosen programming language.
Here's a warm-up: try starting by writing an algorithm to find the solution to a complete Rubik's Cube (all faces the same color) from any initial state with the fewest involved (rotated) faces.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question