Math builds on itself, so trying to learn a math topic without first mastering its prerequisites is just asking for trouble. A good place to learn prerequisites is Khan Academy. Although it’s missing many advanced math topics, it covers the basics well. And the way it organizes practice problems ensures that you regularly get tested on the concepts you need the most practice with.
Competitive programming practice sites often organize problems by topic area. For example, uHunt has categories for graphs, string processing, dynamic programming, and many others. uHunt Chapter 5 covers topics in mathematics. Since math is a separate field from computer science and algorithms (though it’s closely related), I’m considering this week how it relates to competitive programming preparation.
Petr Mitrichev, legendary competitive programmer and current Google employee, didn’t major in computer science. He got a degree from Moscow State University in mathematics. In a Topcoder Spotlight Session in 2008, he answered a few questions about how math relates to competitive programming practice: