This is a manual of things that will help you in computer olympiads like the final round of the South African Computer Olympiad (SACO) and the International Olympiad in Informatics (IOI). A lot of the information here is more general and will be generally useful, while other information is geared specifically towards competitions is not useful in general.
A lot of the information here is based on my own experience rather than formal training, and as such it is rather haphazard and some of the ideas and terminology might be rather unorthodox. It is not intended as a replacement for a good book on algorithms (I recommend Algorithms or Algorithms in C by Sedgewick). It is intended to look at the theory from the perspective of olympiad programming and to give some extra tricks that are useful for olympiad programming.
This manual is also very very dated. With the benefit of experience, there are some things I would do differently. I certainly wouldn't recommend using Pascal for olympiads when so many of the algorithms and data structures described here are provided by other languages (C++, Java, Python etc). I've left it online anyway in case anyone finds it useful, but don't take it as gospel.
These pages are designed to be read through in order. Just click the [Next] link at the bottom of each page (you can also download all the pages). You will notice that these pages are not pretty with lots of funky pictures; they are designed to be functional and I don't feel any urge to decorate them.
There are a number of other sites you may find useful for training.
Last updated Sun Oct 2 14:54:28.0000000000 2011. Copyright Bruce Merry (bmerry '@' gmail dot. com).