Chapter one
introduction
Competitive programming combines two topics
- the design of algorithms:
- consists of problem solving and mathematical thinking. An algorithm for solving problem has to be both correct and efficient, and the core of the problem is often about inventing an efficient algorithm.
- Theoretical knowledge of algorithms is important to competitive programmers. Typically, a solution to a problem is a combination of well-known techniques and new insights. The techniques that appear in competitive programming also form the basis for the scientific research of algorithms.
- the implementation of algorithms:
- Not only the idea of the algorithm has to be correct but also the implementation as well. A good coding style in contests is straight forward and concise. Programs should be written quickly.
Mathematics
Mathematics plays an important role in competitive programming.