initial
1. Basic algorithm:
enumerate.
Recursion and divide and conquer.
recursion.
2. Graph algorithm:
Depth-first and breadth-first traversal of graphs.
shortest path algorithm
Minimum Spanning Tree Algorithm
Maximum matching of bipartite graphs (Hungarian algorithm)
The Augmenting Path Algorithm for Maximum Flow (KM Algorithm).
3. Data structure.
string
Sorting (quick sort, merge sort (related to inverse numbers), heap sort)
Simple union-check application.
Efficient search methods such as hash table and binary search (Hash of numbers, Hash of strings)
Huffman tree
heap
trie tree (static tree construction, dynamic tree construction)
4. Simple search
depth-first search
Breadth-first search
Simple Search Techniques and Pruning
5. Dynamic programming
Knapsack problem.
Simple DP (Longest Common Subsequence) (Optimal Binary Retrieval Tree Problem)
6. Mathematics
Combinatorics: 1. Principles of addition and multiplication. 2. Permutations and combinations. 3. Recurrence.
Number Theory. 1. Prime and Divide Problems 2. Binary Bits. 3. Congruence Modulo Operation.
Calculation method. 1. Knowledge about solving monotonic function by bisection method
7. Computational geometry.
geometric formula.
The application of cross product and dot product (such as the determination of the intersection of line segments, the distance from point to line segment, etc.).
Simple algorithm for polygons (area) and related judgments (points are within polygons, whether polygons intersect)
Convex hull.
intermediate:
1. Basic algorithm:
Application of C++ Standard Template Library.
2. Graph algorithm:
The establishment and solution of differentially constrained systems.
min fee max flow
biconnected components
Strongly Connected Branches and Their Condensed Points