|Things to Do to Prepare|
|Team Work Suggestions|
|Link suggested By Contestants|
|Great Books Suggested|
Things to do to prepare for a contest - some suggestions :
- Study algorithms - this is more important than programming skills.
- Find a good coach, someone who will organise training sessions.
- Talk to students who have competed before.
- Look at previous problems. Do several practice contests -- utilise online judging sites.
- Make sure you are familiar with the information for participating teams, and with the judging software (DOM Judge).
Thousands of programmers log onto the TopCoder Web site and race to solve three programming problems. The payoff for two hours of concentration: sharper skills, a chance to raise one's profile in the job market and, oh yes -- cash.
After analysing previous contest programming problems, we noticed that the same kind of problems occurred over and over again. They can be classified into five main categories:
- Search problems. These involve checking a large number of situations in order to find the best way or the number of ways in which something can be done. The difficulty is often the imposed execution time limit, so you should pay attention to the complexity of your algorithm.
- Graph problems. The problems have a special structure so they can be represented as a graph-theoretical problem for which standard algorithms are available.
- Geometrical problems. These involve geometrical shapes, lines, and angles.
- Trivial problems. The choice of the appropriate algorithm is clear, but these usually take quite a long time to program carefully.
- Non-standard problems.
For the first three categories, standard algorithms are well documented in the literature, and you should program these algorithms beforehand and take the listings with you to the contest. In this way, you can avoid making the same (small) mistakes repeatedly and you can concentrate on the difficult aspects of the problem.