Programming Challenges by Steven S.Skiena,Miguel A.Revilla

Chapter1.Getting Started:
1.1 Getting Started With the Judge
1.1.1 The Programming Challenges Robot Judge
1.1.2 The Universidad de Valladolid Robot Judge
1.1.3 Feedback From the Judge
1.2 Choosing Your Weapon
1.2.1 Programming Languages
1.2.2 Reading Our Programs
1.2.3 Standard Input/Output
1.3 Programming Hints
1.4 Elementary Data Types
1.5 About the problems
1.6 Problems
1.6.1 The 3n+1 Problem
1.6.2 Minesweeper
1.6.3 The Trip
1.6.4 LCD Display
1.6.5 Graphical Editor
1.6.6 Interpreter
1.6.7 Check the Check
1.6.8 Australian Voting

Chapter2.Data Structures:
2.1 Elementary Data Structures
2.1.1 Stacks
2.1.2 Queues
2.1.3 Dictionaries
2.1.4 Priority Queues
2.1.5 Sets
2.2 Object Libraries
2.2.1 The C++ Standard Template Library
2.2.2 The Java java.util Package
2.3 Program Design Example:Going to War
2.4 Hitting the deck
2.5 String Input/Output
2.6 Winning The War
2.7 Testing and Debugging
2.8 Problems
2.8.1 Jolly Jumpers
2.8.2 Poker Hands
2.8.3Hartals
2.8.4 Crypt Kicker
2.8.5 Stack'em Up
2.8.6 Erdos Numbers
2.8.7 Contest Scoreboard
2.8.8 Yahtzee

Chapter3.Strings
3.1 Character Codes
3.2 Representing Strings
3.3 Program Design Example:Corporate Renamings
3.4 Searching for Patterns
3.5 Manipulating Strings
3.6 Completing the Merger
3.7 String Library Functions

Chapter4.Sorting
4.1 Sorting Applications
4.2 Sorting Algorithms
4.3 Program Design Example:Rating the Field
4.4 Sorting Library Functions
4.5 Rating the Field

Chapter5.Arithmetic and Algebra
5.1 Machine Arithmetic
5.1.1 Integer Libraries
5.2 High-precision Integers
5.3 High-precision Arithmetic
5.4 Numerical Bases and Conversion
5.5 Real Numbers
5.6 Algebra
5.7 Logarithms
5.8 Real Mathematical Libraries

Chapter6.Combinatorics
6.1 Basic Counting Techniques
6.2 Recurrence Relations
6.3 Binomial Coefficients
6.4 Other Counting Sequences
6.5 Recursion and Induction

Chapter7.Number Theory
7.1 Prime Numbers
7.2 Divisibility
7.2.1 Greatest Common Divisor
7.2.2 Least Common Multiple
7.3 Modular Arithmetic
7.4 Congruences
7.5 Numbers Theoretic Libraries

Chapter8.Backtracking
8.1 Backtracking
8.2 Constructing All Subsets
8.3 Constructing All Permutations
8.4 Program Design Example:The Eight-Queens Problem
8.5 Pruning Search

Chapter9.Graph Traversal
9.1 Flavors of Graphs
9.2 Data Structures For Graphs
9.3 Graph Traversal:Breadth-First
9.4 Graph Traversal:Depth-First
9.5 Topological Sorting

Chapter10.Graph Algorithms
10.1 Graph Theory
10.2 Minimum Spanning Trees
10.3 Shortest Paths
10.4 Network Flows and Bipartite Matching

Chapter11.Dynamic Programming
11.1 Don't Be Greedy
11.2 Edit Distance
11.3 Reconstructing the Path
11.4 Varieties of Edit Distance
11.5 Program Design Example:Elevator Optimization

Chapter12.Grids
12.1 Rectilinear Grids
12.2 Triangular and Hexagonal Grids
12.3 Program Design Example:Plate Weight
12.4 Circle Packings
12.5 Longitude and Latitude

Chapter13.Geometry
13.1 Lines
13.2 Triangles and Trigonometry
13.3 Circles
13.4 Program Design Example: Faster Than a Speeding Bullet
13.5 Trigonometric Function Libraries

Chapter14. Computational Geometry
14.1 Line Segments and Intersection
14.2 Polygons and Angle Computations
14.3 Convex Hulls
14.4 Triangulation:Algorithms and Related problems
14.5 Algorithms on Grids
14.6 Geometry Libraries.Download