
A set of algorithmic problem-solving strategies
Description
Book Introduction
This book is designed to help you learn about various algorithm design techniques and data structures while solving programming competition problems, and further develop your problem-solving skills.
Each chapter includes practice problems that readers can write and grade on their own, and each practice problem is accompanied by sample answers and detailed explanations of the process of designing the answer.
Each chapter includes practice problems that readers can write and grade on their own, and each practice problem is accompanied by sample answers and detailed explanations of the process of designing the answer.
- You can preview some of the book's contents.
Preview
index
==== Volume 1 ====
Author's Note
Part 1: Getting Started with Troubleshooting
__survey
Chapter 1: Problem Solving and Programming Contests
__1.1 Introduction
__1.2 Programming Contest
__1.3 How to read this book
__1.4 Programming competitions you can participate in domestically
__1.5 Advice for preparing for the competition
__1.6 Further Reading
Chapter 2: Problem Solving Overview
__2.1 Introduction
__2.2 Problem Solving Process
__2.3 Problem Solving Strategies
__2.4 Further Reading
Chapter 3: Coding and Debugging
__3.1 Introduction: Don't Overlook the Importance of Coding
__3.2 Principles for writing good code
__3.3 Common Mistakes
__3.4 Debugging and Testing
__3.5 Understanding Variable Scope
__3.6 Understanding real data types (optional)
__3.7 Further Reading
Part 2 Algorithm Analysis
survey
Chapter 4: Time Complexity Analysis of Algorithms
__4.1 Introduction
__4.2 Linear-time algorithms
__4.3 Sublinear Time Algorithms
__4.4 Exponential Time Algorithm
__4.5 time complexity
__4.6 Estimating execution time
__4.7 Computational complexity classes: P, NP, NP-complete
__4.8 Further Reading
Chapter 5 Proof of the Algorithm's Validity
__5.1 Introduction
__5.2 Mathematical induction and loop invariants
__5.3 The law of reductio ad absurdum
__5.4 Other technologies
__5.5 Further Reading
Part 3: Algorithm Design Paradigms
__survey
Chapter 6: Solving Idiotically
__6.1 Introduction
__6.2 Recursive calls and exhaustive search
__6.3 Problem: Picnic (Difficulty: Easy, Problem ID: PICNIC)
__6.4 Solution: Picnic
__6.5 Problem: Cover the Board (Difficulty: Easy, Problem ID: BOARDCOVER)
__6.6 Solution: Cover the game board
__6.7 Optimization Problem
__6.8 Problem: Clock Synchronization (Difficulty: Medium, Problem ID: CLOCKSYNC)
__6.9 Solution: Setting the Clock
__6.10 Frequently appearing complete search types
Chapter 7 Divide and Conquer
__7.1 Introduction
__7.2 Problem: Flipping a Quad Tree (Problem ID: QUADTREE, Difficulty: Easy)
__7.3 Solution: Flipping a Quad Tree
__7.4 Problem: Cutting the Fence (Problem ID: FENCE, Difficulty: Medium)
__7.5 Solution: Cutting the Fence
__7.6 Problem: Fan Meeting (Problem ID: FANMEETING, Difficulty: High)
__7.7 Solution: Fan Meeting
Chapter 8 Dynamic Programming
__8.1 Introduction
__8.2 Problem: Wildcard (Problem ID: WILDCARD, Difficulty: Medium)
__8.3 Solution: Wildcard
__8.4 Traditional Optimization Problems
__8.5 Problem: Combined LIS (Problem ID: JLIS, Difficulty: Easy)
__8.6 Solution: Combined LIS
__8.7 Problem: Memorizing Pi (Problem ID: PI, Difficulty: Easy)
__8.8 Solution: Memorizing Pi
__8.9 Problem: Quantization (Problem ID: QUANTIZE, Difficulty: Medium)
__8.10 Solution: Quantization
__8.11 Number of cases and probability
__8.12 Problem: Asymmetric Tiling (Problem ID: ASYMTILING, Difficulty: Easy)
__8.13 Solution: Asymmetric tiling
__8.14 Problem: Polyominoes (Problem ID: POLY, Difficulty: Medium)
__8.15 Solution: Polyomino
__8.16 Problem: Dr. Dunibal's Jailbreak (Problem ID: NUMB3RS, Difficulty: Medium)
__8.17 Solution: Dr. Dunibal's Escape
Chapter 9 Dynamic Programming Techniques
__9.1 Calculating the Actual Solution to an Optimization Problem
__9.2 Problem: Packing for a Trip (Problem ID: PACKING, Difficulty: Medium)
__9.3 Solution: Packing for a Trip
__9.4 Problem: Optical Character Recognition (Problem ID: OCR, Difficulty: High)
__9.5 Solution: Optical Character Recognition
__9.6 Calculating the kth answer
__9.7 Problem: The kth maximally increasing subsequence (Problem ID: KLIS, Difficulty: High)
__9.8 Solution: kth maximally increasing subsequence
__9.9 Problem: Dragon Curve (Problem ID: DRAGON, Difficulty: Medium)
__9.10 Solution: Dragon Curve
__9.11 Memoization for non-integer inputs
__9.12 Problem: Webbazym (Problem ID: ZIMBABWE, Difficulty: High)
__9.13 Solution: Webbajim
__9.14 Problem: Restoring Experimental Data (Problem ID: RESTORE, Difficulty: Medium)
__9.15 Solution: Recovering Experimental Data
__9.16 Combination Game
__9.17 Problem: Number Game (Problem ID: NUMBERGAME, Difficulty: Easy)
__9.18 Solution: Number Game
__9.19 Problem: Block Game (Problem ID: BLOCKGAME, Difficulty: Medium)
__9.20 Solution: Block Game
__9.21 Iterative dynamic programming
__9.22 Problem: Conveyor Belt Sushi (Problem ID: SUSHI, Difficulty: Medium)
__9.23 Solution: Conveyor Belt Sushi
__9.24 Problem: Genius (Problem ID: GENIUS, Difficulty: Medium)
__9.25 Solution: Genius
__9.26 Further Reading
Chapter 10: The Law of Greed
__10.1 Introduction
__10.2 Problem: Warming a Lunchbox (Problem ID: LUNCHBOX, Difficulty: Easy)
__10.3 Solution: Warming up a lunchbox
__10.4 Problem: Joining Strings (Problem ID: STRJOIN, Difficulty: Medium)
__10.5 Solution: Concatenating Strings
__10.6 Problem: Minas Anor (Problem ID: MINASTIRITH, Difficulty: High)
__10.7 Solution: Minas Anor
Chapter 11 Combinatorial Exploration
__11.1 Introduction
__11.2 Combinatorial search techniques
__11.3 Problem: Board Cover 2 (Problem ID: BOARDCOVER2, Difficulty: Easy)
__11.4 Solution: Cover the Game Board 2
__11.5 Problem: Friends with Severe Allergies (Problem ID: ALLERGY, Difficulty: Medium)
__11.6 Solution: Friends with severe allergies
__11.7 Problem: Kakuro (Problem ID: KAKURO2, Difficulty: Medium)
__11.8 Solution: Kakuro
__11.9 Further Reading
Chapter 12: Converting Optimization Problems into Decision Problems
__12.1 Introduction
__12.2 Problem: Antarctic Base (Problem ID: ARCTIC, Difficulty: Easy)
__12.3 Solution: Antarctic Base
__12.4 Problem: Canada Trip (Problem ID: CANADATRIP, Difficulty: Medium)
__12.5 Solution: Traveling to Canada
__12.6 Problem: Withdrawing from a Course (Problem ID: WITHDRAWAL, Difficulty: High)
__12.7 Solution: Withdrawal from class
Part 4: Famous Algorithms
__survey
Chapter 13 Numerical Analysis
__13.1 Introduction
__13.2 Dichotomy
__13.3 Problem: Increasing the Winning Rate (Problem ID: RATIO, Difficulty: Easy)
__13.4 Solution: Increasing the odds of winning
__13.5 Tripartite Search
__13.6 Problem: Pollen Fossils (Problem ID: FOSSIL, Difficulty: High)
__13.7 Solution: Pollen Fossil
__13.8 Other topics
Chapter 14 Number Theory
__14.1 Introduction
__14.2 prime numbers
__14.3 Problem: Password 486 (Problem ID: PASS486, Difficulty: Medium)
__14.4 Solution: Password 486
__14.5 Euclidean algorithm
__14.6 Problem: Magic Potion (Problem ID: POTION, Difficulty: Medium)
__14.7 Solution: Magic Potion
__14.8 Modular Operations
__14.9 Further Reading (optional)
Chapter 15 Computational Geometry
__15.1 Introduction
__15.2 Tools of Computational Geometry
__15.3 Intersection, distance, and area
__15.4 Problem: Pinball Simulation (Problem ID: PINBALL, Difficulty: High)
__15.5 Solution: Pinball Simulation
__15.6 Polygon
__15.7 Problem: Treasure Island (Problem ID: TREASURE, Difficulty: High)
__15.8 Solution: Treasure Island
__15.9 Problem: Nerd or Not Nerd? (Problem ID: NERDS, Difficulty: Medium)
__15.10 Solution: Nerd or not?
__15.11 Computational Geometry Algorithm Design Patterns
__15.12 Common Mistakes and Things to Watch Out for
__15.13 Further Reading
==== Volume 2 ====
Part 5: Basic Data Structures
__survey
Chapter 16 Bitmask
__16.1 Introduction
__16.2 Implementation of sets using bitmasks
__16.3 Example of Bitmask Application
__16.4 Problem: Graduation Semester (Problem ID: GRADUATION, Difficulty: Medium)
__16.5 Solution: Graduation Semester
__16.6 Further Reading
Chapter 17 Partial Sum
__17.1 Introduction
__17.2 Problem: Christmas Doll (Problem ID: CHRISTMAS, Difficulty: Medium)
__17.3 Solution: Christmas Doll
__17.4 Further Study
Chapter 18 Linear Data Structures
__18.1 Introduction
__18.2 Dynamic Arrays
__18.3 Linked List
__18.4 Comparison of dynamic arrays and linked lists
__18.5 Problem: Josephus Problem (Problem ID: JOSEPHUS, Difficulty: Easy)
__18.6 Solution: Josephus Problem
__18.7 Further Reading
Chapter 19: Queues, Stacks, and Decks
__19.1 Introduction
__19.2 Implementation of Queues, Stacks, and Decks
__19.3 Using Stacks and Queues
__19.4 Problem: Mismatched Parentheses (Problem ID: BRACKETS2, Difficulty: Easy)
__19.5 Solution: Mismatched parentheses
__19.6 Problem: Analyzing Extraterrestrial Signals (Problem ID: ITES, Difficulty: Medium)
__19.7 Solution: Analyzing Extraterrestrial Signals
20-character string
__20.1 Introduction
__20.2 String Search
__20.3 Problem: Jaeha's Safe (Problem ID: JAEHASAFE, Difficulty: Medium)
__20.4 Solution: Jaeha's Safe
__20.5 Suffix Array
__20.6 Problem: Habits (Problem ID: HABIT, Difficulty: Medium)
__20.7 Solution: Habits
__20.8 Further Reading
Part 6 Tree
__survey
Chapter 21: Tree Implementation and Traversal
__21.1 Introduction
__21.2 Tree Traversal
__21.3 Problem: Changing the Tree Traversal Order (Problem ID: TRAVERSAL, Difficulty: Easy)
__21.4 Solution: Changing the tree traversal order
__21.5 Problem: Fortress (Problem ID: FORTRESS, Difficulty: Medium)
__21.6 Solution: Fortress
Chapter 22 Binary Search Trees
__22.1 Introduction
__22.2 Definition and manipulation of binary search trees
__22.3 Time Complexity Analysis and Balanced Binary Search Trees
__22.4 Problem: Nerd or Not Nerd? 2 (Problem ID: NERD2, Difficulty: Medium)
__22.5 Solution: Nerd or Not Nerd? 2
__22.6 Implementing a Balanced Binary Search Tree Yourself: Trip
__22.7 Problem: Reversing Insertion Sort (Problem ID: INSERTION, Difficulty: Medium)
__22.8 Solution: Reversing Insertion Sort
Chapter 23: Priority Queues and Heaps
__23.1 Introduction
__23.2 Definition and implementation of heap
__23.3 Problem: Changing Median (Problem ID: RUNNINGMEDIAN, Difficulty: Easy)
__23.4 Solution: Changing Intermediate Values
24-Chapter Interval Tree
__24.1 Interval Tree: Answering Questions About Intervals
__24.2 Problem: Hiking Trail (Problem ID: MORDOR, Difficulty: Medium)
__24.3 Solution: Hiking Trail
__24.4 Problem: Family Tree Exploration (Problem ID: FAMILYTREE, Difficulty: High)
__24.5 Solution: Exploring the Genealogy
__24.6 Fenwick Tree: Fast and Simple Interval Sums
__24.7 Problem: Measuring Insertion Sort Time (Problem ID: MEASURETIME, Difficulty: Medium)
__24.8 Solution: Measuring Insertion Sort Time
Chapter 25 Mutually Exclusive Sets
__25.1 Introduction
__25.2 Problem: Editor Wars (Problem ID: EDITORWARS, Difficulty: Medium)
__25.3 Solution: Editor Wars
Chapter 26 Try
__26.1 Introduction
__26.2 Problem: Goodbye, and thanks for the fish! (Problem ID: SOLONG, Difficulty: Medium)
__26.3 Solution: Goodbye, and thanks for the fish!
__26.4 Multi-string search using Trie
__26.5 Problem: Security Terminator (Problem ID: NH, Difficulty: High)
__26.6 Solution: Security Terminator
Part 7 graph
__survey
Chapter 27: Representation and Definition of Graphs
__27.1 Introduction
__27.2 Example of using graphs
__27.3 Implicit Graph Structures
__27.4 How to Represent Graphs
Chapter 28: Depth-First Search of Graphs
__28.1 Introduction
__28.2 Problem: Ancient Dictionary (Problem ID: DICTIONARY, Difficulty: Easy)
__28.3 Explanation: Ancient Language Dictionary
__28.4 Euler Circuit
__28.5 Problem: Word Chain (Problem ID: WORDCHAIN, Difficulty: Easy)
__28.6 Solution: Word Limit Ending Game
__28.7 Theoretical Background and Applications
__28.8 Problem: Installing a Surveillance Camera (Problem ID: GALLERY, Difficulty: Medium)
__28.9 Solution: Installing a surveillance camera
__28.10 Problem: Meeting Room Assignment (Problem ID: MEETINGROOM, Difficulty: High)
__28.11 Solution: Conference Room Assignment
Chapter 29: Breadth-First Search of Graphs
__29.1 Introduction
__29.2 Problem: Sorting Game (Problem ID: SORTGAME, Difficulty: Medium)
__29.3 Solution: Sorting Game
__29.4 Problem: Children's Day (Problem ID: CHILDRENDAY, Difficulty: High)
__29.5 Explanation: Children's Day
__29.6 Shortest Path Strategy
__29.7 Problem: Tower of Hanoi (Problem ID: HANOI4B, Difficulty: Medium)
__29.8 Solution: Tower of Hanoi
Chapter 30: Shortest Path Algorithm
__30.1 Introduction
__30.2 Dijkstra's shortest path algorithm
__30.3 Problem: Signal Routing (Problem ID: ROUTING, Difficulty: Easy)
__30.4 Solution: Signal Routing
__30.5 Problem: Fire Truck (Problem ID: FIRETRUCKS, Difficulty: Medium)
__30.6 Solution: Fire Truck
__30.7 Problem: Ironman N-Trial (Problem ID: NTHLON, Difficulty: High)
__30.8 Solution: Ironman N-Trial Race
__30.9 Bellman-Ford shortest path algorithm
__30.10 Problem: Time Travel (Problem ID: TIMETRIP, Difficulty: Medium)
__30.11 Solution: Time Travel
__30.12 Floyd's all-pairs shortest distance algorithm
__30.13 Problem: Drunk Driving Crackdown (Problem ID: DRUNKEN, Difficulty: Medium)
__30.14 Solution: Drunk Driving Crackdown
__30.15 Problem: Election Promises (Problem ID: PROMISES, Difficulty: Medium)
__30.16 Explanation: Election promise
Chapter 31 Minimum Spanning Tree
__31.1 Introduction
__31.2 Kruskal's minimum spanning tree algorithm
__31.3 Prim's Minimum Spanning Tree Algorithm
__31.4 Problem: Local Area Network (Problem ID: LAN, Difficulty: Easy)
__31.5 Solution: Short-Range Network
__31.6 Problem: Determining a Travel Route (Problem ID: TPATH, Difficulty: High)
__31.7 Solution: Determining a Travel Route
Chapter 32 Network Flow
__32.1 Introduction
__32.2 Ford-Fulkerson Algorithm
__32.3 Network Modeling
__32.4 Problem: Match Fixing (Problem ID: MATCHFIX, Difficulty: Medium)
__32.5 Solution: Match Fixing
__32.6 Problem: National Projects (Problem ID: PROJECTS, Difficulty: High)
__32.7 Solution: National Project
__32.8 Bipartite Matching
__32.9 Problem: Bishop (Problem ID: BISHOPS, Difficulty: Medium)
__32.10 Solution: Bishop
__32.11 Problem: Setting a Trap (Problem ID: TRAPCARD, Difficulty: High)
__32.12 Solution: Setting a trap
__32.13 More to study
Author's Note
Part 1: Getting Started with Troubleshooting
__survey
Chapter 1: Problem Solving and Programming Contests
__1.1 Introduction
__1.2 Programming Contest
__1.3 How to read this book
__1.4 Programming competitions you can participate in domestically
__1.5 Advice for preparing for the competition
__1.6 Further Reading
Chapter 2: Problem Solving Overview
__2.1 Introduction
__2.2 Problem Solving Process
__2.3 Problem Solving Strategies
__2.4 Further Reading
Chapter 3: Coding and Debugging
__3.1 Introduction: Don't Overlook the Importance of Coding
__3.2 Principles for writing good code
__3.3 Common Mistakes
__3.4 Debugging and Testing
__3.5 Understanding Variable Scope
__3.6 Understanding real data types (optional)
__3.7 Further Reading
Part 2 Algorithm Analysis
survey
Chapter 4: Time Complexity Analysis of Algorithms
__4.1 Introduction
__4.2 Linear-time algorithms
__4.3 Sublinear Time Algorithms
__4.4 Exponential Time Algorithm
__4.5 time complexity
__4.6 Estimating execution time
__4.7 Computational complexity classes: P, NP, NP-complete
__4.8 Further Reading
Chapter 5 Proof of the Algorithm's Validity
__5.1 Introduction
__5.2 Mathematical induction and loop invariants
__5.3 The law of reductio ad absurdum
__5.4 Other technologies
__5.5 Further Reading
Part 3: Algorithm Design Paradigms
__survey
Chapter 6: Solving Idiotically
__6.1 Introduction
__6.2 Recursive calls and exhaustive search
__6.3 Problem: Picnic (Difficulty: Easy, Problem ID: PICNIC)
__6.4 Solution: Picnic
__6.5 Problem: Cover the Board (Difficulty: Easy, Problem ID: BOARDCOVER)
__6.6 Solution: Cover the game board
__6.7 Optimization Problem
__6.8 Problem: Clock Synchronization (Difficulty: Medium, Problem ID: CLOCKSYNC)
__6.9 Solution: Setting the Clock
__6.10 Frequently appearing complete search types
Chapter 7 Divide and Conquer
__7.1 Introduction
__7.2 Problem: Flipping a Quad Tree (Problem ID: QUADTREE, Difficulty: Easy)
__7.3 Solution: Flipping a Quad Tree
__7.4 Problem: Cutting the Fence (Problem ID: FENCE, Difficulty: Medium)
__7.5 Solution: Cutting the Fence
__7.6 Problem: Fan Meeting (Problem ID: FANMEETING, Difficulty: High)
__7.7 Solution: Fan Meeting
Chapter 8 Dynamic Programming
__8.1 Introduction
__8.2 Problem: Wildcard (Problem ID: WILDCARD, Difficulty: Medium)
__8.3 Solution: Wildcard
__8.4 Traditional Optimization Problems
__8.5 Problem: Combined LIS (Problem ID: JLIS, Difficulty: Easy)
__8.6 Solution: Combined LIS
__8.7 Problem: Memorizing Pi (Problem ID: PI, Difficulty: Easy)
__8.8 Solution: Memorizing Pi
__8.9 Problem: Quantization (Problem ID: QUANTIZE, Difficulty: Medium)
__8.10 Solution: Quantization
__8.11 Number of cases and probability
__8.12 Problem: Asymmetric Tiling (Problem ID: ASYMTILING, Difficulty: Easy)
__8.13 Solution: Asymmetric tiling
__8.14 Problem: Polyominoes (Problem ID: POLY, Difficulty: Medium)
__8.15 Solution: Polyomino
__8.16 Problem: Dr. Dunibal's Jailbreak (Problem ID: NUMB3RS, Difficulty: Medium)
__8.17 Solution: Dr. Dunibal's Escape
Chapter 9 Dynamic Programming Techniques
__9.1 Calculating the Actual Solution to an Optimization Problem
__9.2 Problem: Packing for a Trip (Problem ID: PACKING, Difficulty: Medium)
__9.3 Solution: Packing for a Trip
__9.4 Problem: Optical Character Recognition (Problem ID: OCR, Difficulty: High)
__9.5 Solution: Optical Character Recognition
__9.6 Calculating the kth answer
__9.7 Problem: The kth maximally increasing subsequence (Problem ID: KLIS, Difficulty: High)
__9.8 Solution: kth maximally increasing subsequence
__9.9 Problem: Dragon Curve (Problem ID: DRAGON, Difficulty: Medium)
__9.10 Solution: Dragon Curve
__9.11 Memoization for non-integer inputs
__9.12 Problem: Webbazym (Problem ID: ZIMBABWE, Difficulty: High)
__9.13 Solution: Webbajim
__9.14 Problem: Restoring Experimental Data (Problem ID: RESTORE, Difficulty: Medium)
__9.15 Solution: Recovering Experimental Data
__9.16 Combination Game
__9.17 Problem: Number Game (Problem ID: NUMBERGAME, Difficulty: Easy)
__9.18 Solution: Number Game
__9.19 Problem: Block Game (Problem ID: BLOCKGAME, Difficulty: Medium)
__9.20 Solution: Block Game
__9.21 Iterative dynamic programming
__9.22 Problem: Conveyor Belt Sushi (Problem ID: SUSHI, Difficulty: Medium)
__9.23 Solution: Conveyor Belt Sushi
__9.24 Problem: Genius (Problem ID: GENIUS, Difficulty: Medium)
__9.25 Solution: Genius
__9.26 Further Reading
Chapter 10: The Law of Greed
__10.1 Introduction
__10.2 Problem: Warming a Lunchbox (Problem ID: LUNCHBOX, Difficulty: Easy)
__10.3 Solution: Warming up a lunchbox
__10.4 Problem: Joining Strings (Problem ID: STRJOIN, Difficulty: Medium)
__10.5 Solution: Concatenating Strings
__10.6 Problem: Minas Anor (Problem ID: MINASTIRITH, Difficulty: High)
__10.7 Solution: Minas Anor
Chapter 11 Combinatorial Exploration
__11.1 Introduction
__11.2 Combinatorial search techniques
__11.3 Problem: Board Cover 2 (Problem ID: BOARDCOVER2, Difficulty: Easy)
__11.4 Solution: Cover the Game Board 2
__11.5 Problem: Friends with Severe Allergies (Problem ID: ALLERGY, Difficulty: Medium)
__11.6 Solution: Friends with severe allergies
__11.7 Problem: Kakuro (Problem ID: KAKURO2, Difficulty: Medium)
__11.8 Solution: Kakuro
__11.9 Further Reading
Chapter 12: Converting Optimization Problems into Decision Problems
__12.1 Introduction
__12.2 Problem: Antarctic Base (Problem ID: ARCTIC, Difficulty: Easy)
__12.3 Solution: Antarctic Base
__12.4 Problem: Canada Trip (Problem ID: CANADATRIP, Difficulty: Medium)
__12.5 Solution: Traveling to Canada
__12.6 Problem: Withdrawing from a Course (Problem ID: WITHDRAWAL, Difficulty: High)
__12.7 Solution: Withdrawal from class
Part 4: Famous Algorithms
__survey
Chapter 13 Numerical Analysis
__13.1 Introduction
__13.2 Dichotomy
__13.3 Problem: Increasing the Winning Rate (Problem ID: RATIO, Difficulty: Easy)
__13.4 Solution: Increasing the odds of winning
__13.5 Tripartite Search
__13.6 Problem: Pollen Fossils (Problem ID: FOSSIL, Difficulty: High)
__13.7 Solution: Pollen Fossil
__13.8 Other topics
Chapter 14 Number Theory
__14.1 Introduction
__14.2 prime numbers
__14.3 Problem: Password 486 (Problem ID: PASS486, Difficulty: Medium)
__14.4 Solution: Password 486
__14.5 Euclidean algorithm
__14.6 Problem: Magic Potion (Problem ID: POTION, Difficulty: Medium)
__14.7 Solution: Magic Potion
__14.8 Modular Operations
__14.9 Further Reading (optional)
Chapter 15 Computational Geometry
__15.1 Introduction
__15.2 Tools of Computational Geometry
__15.3 Intersection, distance, and area
__15.4 Problem: Pinball Simulation (Problem ID: PINBALL, Difficulty: High)
__15.5 Solution: Pinball Simulation
__15.6 Polygon
__15.7 Problem: Treasure Island (Problem ID: TREASURE, Difficulty: High)
__15.8 Solution: Treasure Island
__15.9 Problem: Nerd or Not Nerd? (Problem ID: NERDS, Difficulty: Medium)
__15.10 Solution: Nerd or not?
__15.11 Computational Geometry Algorithm Design Patterns
__15.12 Common Mistakes and Things to Watch Out for
__15.13 Further Reading
==== Volume 2 ====
Part 5: Basic Data Structures
__survey
Chapter 16 Bitmask
__16.1 Introduction
__16.2 Implementation of sets using bitmasks
__16.3 Example of Bitmask Application
__16.4 Problem: Graduation Semester (Problem ID: GRADUATION, Difficulty: Medium)
__16.5 Solution: Graduation Semester
__16.6 Further Reading
Chapter 17 Partial Sum
__17.1 Introduction
__17.2 Problem: Christmas Doll (Problem ID: CHRISTMAS, Difficulty: Medium)
__17.3 Solution: Christmas Doll
__17.4 Further Study
Chapter 18 Linear Data Structures
__18.1 Introduction
__18.2 Dynamic Arrays
__18.3 Linked List
__18.4 Comparison of dynamic arrays and linked lists
__18.5 Problem: Josephus Problem (Problem ID: JOSEPHUS, Difficulty: Easy)
__18.6 Solution: Josephus Problem
__18.7 Further Reading
Chapter 19: Queues, Stacks, and Decks
__19.1 Introduction
__19.2 Implementation of Queues, Stacks, and Decks
__19.3 Using Stacks and Queues
__19.4 Problem: Mismatched Parentheses (Problem ID: BRACKETS2, Difficulty: Easy)
__19.5 Solution: Mismatched parentheses
__19.6 Problem: Analyzing Extraterrestrial Signals (Problem ID: ITES, Difficulty: Medium)
__19.7 Solution: Analyzing Extraterrestrial Signals
20-character string
__20.1 Introduction
__20.2 String Search
__20.3 Problem: Jaeha's Safe (Problem ID: JAEHASAFE, Difficulty: Medium)
__20.4 Solution: Jaeha's Safe
__20.5 Suffix Array
__20.6 Problem: Habits (Problem ID: HABIT, Difficulty: Medium)
__20.7 Solution: Habits
__20.8 Further Reading
Part 6 Tree
__survey
Chapter 21: Tree Implementation and Traversal
__21.1 Introduction
__21.2 Tree Traversal
__21.3 Problem: Changing the Tree Traversal Order (Problem ID: TRAVERSAL, Difficulty: Easy)
__21.4 Solution: Changing the tree traversal order
__21.5 Problem: Fortress (Problem ID: FORTRESS, Difficulty: Medium)
__21.6 Solution: Fortress
Chapter 22 Binary Search Trees
__22.1 Introduction
__22.2 Definition and manipulation of binary search trees
__22.3 Time Complexity Analysis and Balanced Binary Search Trees
__22.4 Problem: Nerd or Not Nerd? 2 (Problem ID: NERD2, Difficulty: Medium)
__22.5 Solution: Nerd or Not Nerd? 2
__22.6 Implementing a Balanced Binary Search Tree Yourself: Trip
__22.7 Problem: Reversing Insertion Sort (Problem ID: INSERTION, Difficulty: Medium)
__22.8 Solution: Reversing Insertion Sort
Chapter 23: Priority Queues and Heaps
__23.1 Introduction
__23.2 Definition and implementation of heap
__23.3 Problem: Changing Median (Problem ID: RUNNINGMEDIAN, Difficulty: Easy)
__23.4 Solution: Changing Intermediate Values
24-Chapter Interval Tree
__24.1 Interval Tree: Answering Questions About Intervals
__24.2 Problem: Hiking Trail (Problem ID: MORDOR, Difficulty: Medium)
__24.3 Solution: Hiking Trail
__24.4 Problem: Family Tree Exploration (Problem ID: FAMILYTREE, Difficulty: High)
__24.5 Solution: Exploring the Genealogy
__24.6 Fenwick Tree: Fast and Simple Interval Sums
__24.7 Problem: Measuring Insertion Sort Time (Problem ID: MEASURETIME, Difficulty: Medium)
__24.8 Solution: Measuring Insertion Sort Time
Chapter 25 Mutually Exclusive Sets
__25.1 Introduction
__25.2 Problem: Editor Wars (Problem ID: EDITORWARS, Difficulty: Medium)
__25.3 Solution: Editor Wars
Chapter 26 Try
__26.1 Introduction
__26.2 Problem: Goodbye, and thanks for the fish! (Problem ID: SOLONG, Difficulty: Medium)
__26.3 Solution: Goodbye, and thanks for the fish!
__26.4 Multi-string search using Trie
__26.5 Problem: Security Terminator (Problem ID: NH, Difficulty: High)
__26.6 Solution: Security Terminator
Part 7 graph
__survey
Chapter 27: Representation and Definition of Graphs
__27.1 Introduction
__27.2 Example of using graphs
__27.3 Implicit Graph Structures
__27.4 How to Represent Graphs
Chapter 28: Depth-First Search of Graphs
__28.1 Introduction
__28.2 Problem: Ancient Dictionary (Problem ID: DICTIONARY, Difficulty: Easy)
__28.3 Explanation: Ancient Language Dictionary
__28.4 Euler Circuit
__28.5 Problem: Word Chain (Problem ID: WORDCHAIN, Difficulty: Easy)
__28.6 Solution: Word Limit Ending Game
__28.7 Theoretical Background and Applications
__28.8 Problem: Installing a Surveillance Camera (Problem ID: GALLERY, Difficulty: Medium)
__28.9 Solution: Installing a surveillance camera
__28.10 Problem: Meeting Room Assignment (Problem ID: MEETINGROOM, Difficulty: High)
__28.11 Solution: Conference Room Assignment
Chapter 29: Breadth-First Search of Graphs
__29.1 Introduction
__29.2 Problem: Sorting Game (Problem ID: SORTGAME, Difficulty: Medium)
__29.3 Solution: Sorting Game
__29.4 Problem: Children's Day (Problem ID: CHILDRENDAY, Difficulty: High)
__29.5 Explanation: Children's Day
__29.6 Shortest Path Strategy
__29.7 Problem: Tower of Hanoi (Problem ID: HANOI4B, Difficulty: Medium)
__29.8 Solution: Tower of Hanoi
Chapter 30: Shortest Path Algorithm
__30.1 Introduction
__30.2 Dijkstra's shortest path algorithm
__30.3 Problem: Signal Routing (Problem ID: ROUTING, Difficulty: Easy)
__30.4 Solution: Signal Routing
__30.5 Problem: Fire Truck (Problem ID: FIRETRUCKS, Difficulty: Medium)
__30.6 Solution: Fire Truck
__30.7 Problem: Ironman N-Trial (Problem ID: NTHLON, Difficulty: High)
__30.8 Solution: Ironman N-Trial Race
__30.9 Bellman-Ford shortest path algorithm
__30.10 Problem: Time Travel (Problem ID: TIMETRIP, Difficulty: Medium)
__30.11 Solution: Time Travel
__30.12 Floyd's all-pairs shortest distance algorithm
__30.13 Problem: Drunk Driving Crackdown (Problem ID: DRUNKEN, Difficulty: Medium)
__30.14 Solution: Drunk Driving Crackdown
__30.15 Problem: Election Promises (Problem ID: PROMISES, Difficulty: Medium)
__30.16 Explanation: Election promise
Chapter 31 Minimum Spanning Tree
__31.1 Introduction
__31.2 Kruskal's minimum spanning tree algorithm
__31.3 Prim's Minimum Spanning Tree Algorithm
__31.4 Problem: Local Area Network (Problem ID: LAN, Difficulty: Easy)
__31.5 Solution: Short-Range Network
__31.6 Problem: Determining a Travel Route (Problem ID: TPATH, Difficulty: High)
__31.7 Solution: Determining a Travel Route
Chapter 32 Network Flow
__32.1 Introduction
__32.2 Ford-Fulkerson Algorithm
__32.3 Network Modeling
__32.4 Problem: Match Fixing (Problem ID: MATCHFIX, Difficulty: Medium)
__32.5 Solution: Match Fixing
__32.6 Problem: National Projects (Problem ID: PROJECTS, Difficulty: High)
__32.7 Solution: National Project
__32.8 Bipartite Matching
__32.9 Problem: Bishop (Problem ID: BISHOPS, Difficulty: Medium)
__32.10 Solution: Bishop
__32.11 Problem: Setting a Trap (Problem ID: TRAPCARD, Difficulty: High)
__32.12 Solution: Setting a trap
__32.13 More to study
Publisher's Review
This book is designed to help you learn about various algorithm design techniques and data structures while solving programming competition problems, and further develop your problem-solving skills.
Each chapter includes practice problems that readers can write and grade on their own, and each practice problem is accompanied by sample answers and detailed explanations of the process of designing the answer.
What this book covers
Part 1: Getting Started with Troubleshooting
Part 2 Algorithm Analysis
Part 3: Algorithm Design Paradigms
Part 4: Famous Algorithms
Part 5: Basic Data Structures
Part 6 Tree
Part 7 graph
Errata and source code can be found on this book's homepage (http://book.algospot.com).
Each chapter includes practice problems that readers can write and grade on their own, and each practice problem is accompanied by sample answers and detailed explanations of the process of designing the answer.
What this book covers
Part 1: Getting Started with Troubleshooting
Part 2 Algorithm Analysis
Part 3: Algorithm Design Paradigms
Part 4: Famous Algorithms
Part 5: Basic Data Structures
Part 6 Tree
Part 7 graph
Errata and source code can be found on this book's homepage (http://book.algospot.com).
GOODS SPECIFICS
- Date of publication: November 21, 2012
- Page count, weight, size: 1,062 pages | 188*240*60mm
- ISBN13: 9788966260546
- ISBN10: 8966260543
You may also like
카테고리
korean
korean