Intro
Hello everyone, I hope you all are doing great. I'm writing to contemplate and discuss about the inefficiencies and lackings that I and many struggle with during a contest. Firstly, I will present my findings on improvement areas, then determine the ideal skill set and illustrate the ideal problem solving process. It might be quite verbose, so I apologise and thank you in advance for reading this voluptuous review and remind you that you can skim through irrelevant parts or entirely skip when you want.
Please leave a comment if you have any similar problems. I want to see which mistakes are more common than the others.
Identifying the weak points
When I was participating in the most recent contest, which is Educational Codeforces Round 193 (Rated for Div. 2), I was constantly swayed by various actions and thoughts, such as regularly checking how many participants have solved the question that I'm currently solving, or watching the remaining time left after each problem to gauge my solving speed, that I now consider as unnecessary or pointless which potentially hinders my focus on the actual problem solving process. Besides these distractions, there are also mistakes in the problem solving steps that I believe are independent from the environment, which could be pressuring like a live contest or unhurried like timeless solves.
The mistakes include the following:
Trying to implement the solution for a problem before confirming the solution is correct (hence, wasting time on implementing and potentially getting a penalty for WA with the short-term joy of passing the sample case)
Waiting for ideas to come, and magically solving the problem while looking into the editor. (you need a pen and paper to think deeper, more accurate and solve faster.
Not checking the constraints and trying to solve a different problem that doesn't exist in the contest.
Although these problems are rather insignificant compared to the knowledge and technique gap between the different levels (e.g. pupil and candidate master), avoiding them could provide a more smooth growth experience in a shorter time period if combined with regular learning and practice.
The ideal skills and problem solving process
The ideals are shaped by the top competitors who are IGM or LGM. These ideals are not easy to achieve and will take dedicated effort and strategy, that is why they are called ideals. Anyhow, there are certain skills that help to solve problems faster.
- Always think about the caveats of the problem after reading the statement. You should think about the time and variable constraints, properties of the given arrays, permutations or operations. The observations usually require perspective from a greater angle or the generalization of the idea.
- Dissect the problem into multiple subproblems or simplify the problem with an easier condition. This should help to think about the implications of each single operation or idea given in the statement. Nevertheless, as time passes, your mind will mend to recognize the patterns and apply the solutions to the past problems that you have engaged with. This will naturally occur as you spend more time understanding properties of any kind of thing.
- You need to prove every important point when you're grinding. For the pathways to form, you brain needs to interact with it. Utilizing writing is much more convenient than forgetting everything you had done when ending. I strongly advise pen and paper.
- Thinking is everything. You need to think through the edge cases, dependencies, and validity of the solution with short sample cases. There shouldn't be much problem with implementation if your algorithm is correct. You can just translate the idea into data structures and logic.
Post contest and editorial strategies
After finishing a contest, there is a couple of tasks that you should do if you want to maximize your gains from the time that you have spent. Below are a few tips on what to do.
Read the solutions to the problems that you got AC on to compare and contrast your solution to the editorial's. Sometimes the explanation to the solution will reveal a simpler approach or provide a proof that solidifies your understanding of the solution.
For the problems that you couldn't solve during the contest, read the editorial part-by-part and try to imagine and convince yourself on why does it work. You can prove some of the things that editorial provide if you would like as a challenge. If editorial doesn't provide the proof, you can still try to come up with a proof, and ask the community and friends to check.
Sometimes there are concepts that you haven't encountered yet. After the contest, add the concept to your learning list and practice it until you can solve it without looking on the editorial. After that, you can further familiarize yourself with the concept by solving similar problems involving the concept.
Wrap-up
Note: The current version is not complete. I will try to improve and add more things in the next few days. Thanks for being patient.
Disclaimer: To avoid any misunderstandings, I want to state that the pronouns are used only for explanation purposes doesn't indicate any specific person. It might have sounded domineering but I don't dictate anything on anyone nor claim that I have the qualifications to do so neither.
If you have any recommendations, please don't hesitate to mention in the comments. Thanks you for reading. Have a nice day.








