Home arrow C++ arrow Page 2 - Preparing For Programming Contests

Preparing For Programming Contests

A programming contest is a special kind of challenge -- one in which the most important fact is the knowledge with which you come to the contest and the intuition you will have during it. What really counts is not your level of physical fitness, but the state of your mind. To prepare for something like this requires a different approach. You will found out exactly what it takes if you read further.

Author Info:
By: Gabor Bernat
Rating: 5 stars5 stars5 stars5 stars5 stars / 9
June 30, 2009
  1. · Preparing For Programming Contests
  2. · Before the programming contest
  3. · During the contest
  4. · After the contest and closing thoughts

print this article

Preparing For Programming Contests - Before the programming contest
(Page 2 of 4 )


Prior to each contest, many people set up roadblocks for themselves with false ideas and mindsets. I would like to talk about them here so you can get them out of your head before you compete.

The one always invoked is "I am not prepared enough." Well, the truth is that most of the time, this indeed has some basis. Yet you should not sit back and give up; on a harder contest, the problems may require something more than just pure knowledge, intuition and luck. Go at it with an optimistic and relaxed approach.

Still, do not exaggerate; experience will tell you how much preparation and studying you should do beforehand. Remember that even if all goes wrong, you will still obtain valuable experience for the future. With this we come to the second false idea: that someone else who is participating is better than you, and that you therefore will have no chance. 

Wrong. All of you will have the same environment during the contest. S/he may have a better chance, but nothing is done until it is done. Moreover, as I explained before, experience is one of the main attributes/traits that helps when competing. You can only accumulate this if you go and compete, right?

Another false thought is that you should not start a problem just because it is too hard. You know it is easier to win on a contest where the problems are easy, as solving them requires less effort. The true challenge is to do the same on a contest where the problems are very hard.

Here you may not come up with a perfect solution, just an approach that can solve a part of the tests. This alone can be enough, though, to obtain the desired place. Still, you cannot be sure that you will be number one, as someone may just solve it. If no one makes the maximum score on a contest, it does not mean that none of the participants were prepared enough.

With this, we came to the final mental block. A few contests last for more than a day of competition. If for some reason, you make too few points on the first day, do not say that you have no chance in the future. A good second day can bring home for you the desired place. Remember that the set of problems in contests are hard most of the time, and the points obtained by contestants are rarely close to the maximum. Even winning half of the points can turn out to be sufficient.

Now we can continue to the global preparation session. This involves simply tracking your progress and making it systematic. It is advisable to maintain a list of what algorithms are coming up most of the time, how you implement them and what problems they can solve.

Plan your approach toward every little detail of the contest. If you know what you want to do and how  you imagine doing it, you have already a higher chance to actually do it when you need to. Here enters quite a lot like time managing and tracking your progress so you know your weak points.

The next part is the simulation. If you want to react better at the contest, the best way to accommodate  the situation is to simulate it. Find out the point system, and the structures of the contest in which you are going to participate, and test yourself; then, analyze your comportment.

One of the best ways to do this is to use the many Internet sites that offer a set of problems and accept and test your solution. Do this just as you would at the contest -- no breaks or pauses for time, and so on. If you do not act in this way, you will only trick yourself. Ultimately, observe your mistakes and correct them. We all learn best from our own mistakes, so do not fear them.

Experience sharing is also crucial. As I said before, the best knowledge comes from experience. It is advisable to learn from others also, so if you can, take problems to your professors or people who have already participated in the contest. Sometimes there are organized collective sessions; make sure you go to these, as they increase the level of understanding of all contestants.

Finally, the night just before the contest, you should make sure to sleep enough and to be present at the contest in time, with all of the required accessories (like pen, paper and so on). Moreover, you should also, of course, maintain a mindset that will let you treat the entire contest seamlessly, with little or no effort.

blog comments powered by Disqus

- Intel Threading Building Blocks
- Threading Building Blocks with C++
- Video Memory Programming in Text Mode
- More Tricks to Gain Speed in Programming Con...
- Easy and Efficient Programming for Contests
- Preparing For Programming Contests
- Programming Contests: Why Bother?
- Polymorphism in C++
- Overview of Virtual Functions
- Inheritance in C++
- Extending the Basic Streams in C++
- Using Stringstreams in C++
- Custom Stream Manipulation in C++
- General Stream Manipulation in C++
- Serialize Your Class into Streams in C++

Watch our Tech Videos 
Dev Articles Forums 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us 
Weekly Newsletter
Developer Updates  
Free Website Content 
Contact Us 
Site Map 
Privacy Policy 

Developer Shed Affiliates


© 2003-2019 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap
Popular Web Development Topics
All Web Development Tutorials