https://train.usaco.org/usacotext2?a=kudQ9cRPxDS&S=probs 16 types of programming contest problems Dynamic Programming Greedy Complete Search Flood Fill Shortest Path Recursive Search Techniques Minimum Spanning Tree Knapsack Computational Geometry Network Flow Eulerian Path Two-Dimensional Convex Hull BigNums Approximate Search Ad Hoc Problems