Problem Categories
Programming Contest problems come in many shapes and sizes. One step that can help
in successfully solving a problem is to determine the nature of that problem. One
of the easiest ways for people to do this is to make up a list of categories and
then decide which category(s) the problem fits into. So here is a first cut in making
a list of categories.
Category  Subcategory  Distinguishing Features 
Geometry  
Packing Problems  Fitting some shaped item into another shaped item  
2D  Can 2D object X fit in/pass through 2D object Y  
3D Perspective  What is visible, are two items the same  
Rotation/Transformation  What happens when a series of rotations/transformations are applied to an object  
Lines  Intersection of lines  
Curves  Circles, Ellipses, Cones, ...  
Triangles  Circumference, area, Right, Isosceles, Equilateral, Scalene, NonEuclidean  
Quadrilaterals  Square, rectangle, parallelogram, rhombus, trapezoid  
Polygons  Working with many sided figures  
Math  
Combinations/Permutations  Solve some puzzle that requires calculation/production of a combination/permutation of items  
Simultaneous Equations  Solve a situation with N unknowns (inequalities also)  
Algebraic  Problems that require use of algebra to solve  
Number Theory  Problems tht require knowledge of number theory to solve  
Trig Relations  Problems tht require trig relationships to solve  
Numerical Relationship  Primes, Pascal's triangle, Fibanacci Series, Factorial  
Trig Relations  Problems that require trig relationships to solve  
String  
String Containment  Is some string(s) contained in another string(s)/matrix  
String Manipulation  Heavy string coding: reversing strings, substringing, ...  
Parsing  Problems that rely on parsing input data  
Algorithmic  
Sorting/Searching  Problems that need data sorted or searched  
Data Structures  Problems that require understanding of specific data structures tos solve  
Backtracking  Problems that require you to be able to backtrack to solve  
Network  Minimum/maximum distance...  
Graph Problems  Problems that require you to be able to traverse and translate graphs to solve  
Grids  XY grids  
Flood Fill  Filling a bounded region  
Recursive  Recursion  cool  
Greedy Algorithms  Solve problem by taking best option at each possible step  
Other  
Brute Force  Just code away  
Inventory  Classic start with a list, add/remove/modify list, display list of state whether operations are possible  
Dynamic Programming  Can you think sideways... 
Examples of problems that fit into categories:
Category  Problems 
Prime Related  
Divisibility Related  
Flood Fill 

Computational Geometry  
Computational Geometry 
