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 | |
2-D | Can 2-D object X fit in/pass through 2-D object Y | |
3-D 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, Non-Euclidean | |
Quadrilaterals | Square, rectangle, parallelogram, rhombus, trapezoid | |
Polygons | Working with many sided figures | |
Math | ||
Combinations/Permutations | Solve some puzzle that requires calculation/production of acombination/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... |
The statements and opinions included in these pages are those of only. Any statements and
opinions included in these pages are not those of Louisiana
State University or the LSU Board of Supervisors.
© 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014