UVA toolkit

On this page you will find a listing of material which you might consider studying in order to improve your problem solving skills.

Online material

The Hitchiker's Guide to Programming Contests. This is a very nice document about many of the techniques and algorithms needed to solve problems at online judges. The document is not for beginners, but it is still worth a read. It is one of the best documents I have ever read about solving problems at online judges. Furthermore there are a lot of nice implementations of various algorithms and data structures in C++. Their computational geometry library is quite good and so is their maximum cardinality bipartite matching algorithm. The document covers dynamic programming, many areas of graph theory, matrices, number theory, computational geometry and more.

Art of Programming Contest by Ahmed Shamsul Arefin. This is an online book about problem solving at online judges. The book covers a lot of the standard algorithms and data structures needed for problem solving. It is definitely worth a read for beginners and semi-experienced problem solvers. Unfortunately the book is full of minor errors.


Introduction to algorithms by Cormen, Leiserson, Rivest and Stein (usually just called CLRS). This is a widely used book about algorithms and data structures. It is quite rigorous and covers many important areas about algorithms that are definitely useful to problem solving on the various online judges.

Concrete Mathematics: A Foundation for Computer Science by Knuth, Patashnik and Graham. This is a very nice book about many important areas for Computer Science. It covers a lot discrete mathematics and also a lot of special areas. It is however quite hard to read, so a certain level of mathematical maturity is essential to be able to read this book. After having read this book and solved a lot of problems, it will come to your attention that many problems are based on exercises or passages from this book.

Programming Challenges: The Programming Contest Training Manual by Steven Skiena and Miguel Revilla. This is a book about problem solving and about solving problems at online judges. It is definitely worth a read if you are a beginner. However the book fails to deliver its promises, because the problems given in the book are almost impossible to solve just by reading the book.

Valid XHTML 1.0 Transitional    Valid CSS 2.1    Powered by Vim