The road to ACMer
- This is a useless repository that backup my code in online judge.
Knowledge List
Sorting
- Bubble Sort
- Insertion Sort
- Selection Sort
- Quick Sort
- Counting Sort
- Merge Sort
- Heap Sort
- Shell Sort
- Radix Sort
- Bucket Sort
Search
- Simple Search
- Backtracking
- Depth First Search
- Breadth First Search
- Bidirectional Breadth First Search
- Binary Search
- Ternary Search
- Golden Section Search
- Branch and Bound
- Heuristic Search
- Iterative Deepening A*
- Memoization
- Randomization
- Genetic Algorithm
Basic Algorithm
- Simulation
- Brute Force
- Recursion
- Divide and Conquer
- Greedy
- Construction
- Pruning
- Math Problem
- Bignum
- Bitwise
- C++ STL
Number Theory
- Divisible and Prime
- Miller-Rabin Test
- Fermat's Little Theorem
- Base
- Euclidean Algorithm
- Extended Euclidean Algorithm
- Congruence
- Chinese Remainder Theory
- Pimitive Root
- Euler's Totient Function
- Pythagorean Theorem
- Goldbach's Conjecture
- Bigmod
Graph Theory
- Shortest Path
- Dijkstra
- Bellman-Ford
- Floyd-Warshall
- Minimum Cost Spanning Tree
- Prim
- Kruskal
- Minimum Cost Arborescence
- Zhu-Liu Algorithm
- Maximum Matching
- Hungarian Algorithm
- Hopcroft-Karp Algorithm
- Perfect Matching
- KM Algorithm
- Stable Marriage
- System of Difference Constraints
- Topological Sorting
- Transitive Closure
- Eulerian Circuit
- Connected Component
- Strongly Connected Component
- Biconnected Components
- Cut Point and Bridge
- Kth Shortest Path
- Degree-Constrained Minimum Spanning Tree
- Optimal Proportional Minimum Spanning Tree
String Processing
- Simple String Processing
- Expression Evaluation
- KMP
- Finite State Automaton
- Huffman Coding
- Cryptography
- Calendar
Dynamic Programming
- Linear DP
- Longest Increasing Sequence
- Longest Common Sequence
- Chessboard Division
- Blocks Elimination
- Number Triangle
- Interval DP
- Matrix Chain Multiplication
- Stones Combination
- Polygon Division
- Brackets Insertion
- Knapsack
- Tree DP
- Set DP
Network Flow
- Maximum Flow
- Ford Fulkerson
- Edmonds Karp
- Dinic
- Preflow Push
- Maximum Capacity Path
- Minimum Cut
- Max-Flow Min-Cut Theorem
- Stoer-Wagner Algorithm
- Min-Cost Max-Flow
- Capacity-Limited Network Flow
Data Structure
- Heap
- Binary Heap
- Skew Heap
- Binomial Heap
- Leftist Tree
- Stack
- Expression Evaluation
- Bracket Matching
- Recursive Compiling
- Queue
- Unidirectional Queue
- Bidirectional Queue
- Circular Queue
- Priority Queue
- Monotone Queue
- Linked List
- Unidirectional Linked List
- Doubly-Linked List
- Circular Linked List
- Block Linked List
- Orthogonal List
- Dancing Links
- Adjacency List
- Hash Table
- Union Find Sets
- Binary Tree
- Balanced Binary Tree
- Binary Search Tree
- Thread Binary Tree
- Segment Tree
- 1d Segment Tree
- 2d Segment Tree
- Trie Tree
- Suffix Tree
- Binary Indexed Tree
- 1d Binary Indexed Tree
- 2d Binary Indexed Tree
- 3d Binary Indexed Tree
- Least Common Ancestor
- Range Maximum/Minimum Query
Computational Geometry
- Basic Concept of Computational Geometry
- Analytic Geometry
- Line Intersection
- Point to Line
- Three Points Fix a Circle
- Circle Intersection
- Circle Line Intersection
- Area Computation
- The Closest Pair
- Polygon Diameter
- Convex Hull
- 3d Convex Hull
- Polygon Problem
- Polar Angel
- Sweep Line Algorithm
- Delaunay Triangulation
- Rotating Calipers
- Simulated Annealing
- Polygon Cut
- Voronoi Diagram
- 3d Geometry
- Discretization
Combinatorial Mathematics
- Pigeonhole Principle
- Permutation/Combination
- Addition Principle
- Multiplication Principle
- Binomial Coefficient
- Inclusion-Exclusion Principle
- Derangement
- Generating Function
- Special Counting
- Fibonacci
- Vatalan
- Stirling
- Schroder
- Partition Number
- Polya
- Burnside
- Mobius
Linear Algebra
- Matrix
- Matrix Multiplication
- Rank of Matrix
- Determinant
- Linear Equations
- Cramer's Rule
- Gaussian Elimination
Probability Theory
- Basic Concept of Probability Theory
- Bayes
- Expected Value
Game Theory
- Nim Games
- Sprague Grundy