Previous Contests
Probably the best way to prepare yourself for this contest is by examining and reviewing
the contest problems from previous years. Links to the archived sites of more than
a decade's worth of past Stanford contests can be found in the "History" section.
Most of the previous contest problems are posted along with judge test data and
sample solutions.
Other Resources
Looking for more practice? Here are a few other resources that may prove useful
during your pilgrimmage:
UVa Online Judge
The UVa Online Judge hosts a collection of thousands and thousands of programming
problems similar to those used in the Stanford local contest and the ACM regional
and international contests. You can register with the site to submit your solutions
for judging, and their online judge will tell you within seconds whether you've
succeeded or not. You can easily spend a lifetime here and not be done.
TopCoder Algorithm Competitions
TopCoder runs periodic programming contests that are slightly different from the
ACM programming contests, but problems and skills used in this setting tend to be
very similar.
It also provides contest die-hards with another avenue for strutting their skills, and
occassionally even offers opportunities to win some prize money.
Programming Challenges (book)
Skiena & Revilla's text is by no means the best book on data structures and
algorithms out there, but nonetheless provides a good introduction to the "tricks
of the trade" for this type of programming contest. It was written as a training
manual for these contests, and serves its purpose reasonably well.
The ACM International Collegiate Programming Contest Official Site
And, of course, you cannot forget the official site of the ACM ICPC, the ancestor
from which all our little contests have sprung. Here, you can find information and
links to past and current World Finals and regional contests around the world.