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