KTH in Sweden added a special course that was essentially there to practice for this kind of competitions.
"Problem Solving and Programming under Pressure"
http://www.kth.se/student/kurser/kurs/DD2458?l=en
A good intro is `Competitive Programming` by Steven Halim [1].
It covers the types tasks typically used in these kinds of competitions, with over 1000 categorized problems. I came away with a through understanding of the intuition behind many of the algorithms and why they work.