Vous êtes sur la page 1sur 2

HK Training Sessions

Math:

I: Number Theory: modular arithmetic, greatest common divisor, Extended Euclidean algorithm, prime numbers, fast
exponential

II: Combinatorics and Probability: nCr, nPr, expected value, inclusion/exclusion, Catalan number, counting

C++:

- basic syntax, useful STL functions, useful STL containers


- Advanced C++ STL: advanced C++ STL functions / containers: bitset, policy-based tree, map, set, etc.

Data Structures:

I: queue, stack, linked list

II: binary heap, binary search tree, hash table, disjoint-set union-find

III: sparse table, segment tree, lazy propagation, 1-d/2-d binary indexed tree

Graphs:

I: basic concept, graph representation, grid graph, depth first search, flood fill, breadth first search

II: disjoint-set union-find, shortest path, minimum spanning tree

III: algorithms on tree: application on pre-order/post-order, lowest common ancestor, tree diameter

IV: Graph Connectivity: cut edge, articulation point, bridge-connected component, strongly/weakly connected
component, graph shrinking trick

Dynamic Programming:

II: basic concept, explanation to classical DP problems: Knapsack, Longest Common Sub-sequence, etc.

II: DP on trees/directed acyclic graphs, bitwise DP, DP dimension reduction techniques

III: DP optimization tricks: monotone queue, convex hull trick, divide and conquer

Recursion, Divide and Conquer:

- basic concept, exhaustion, branch and bound, Master Theorem


- Advanced application of divide and conquer

String Algorithms:

- trie, hashing, KMP Algorithm, suffix array, suffix tree, Z Algorithm, Manacher’s Algorithm, Aho–Corasick
Algorithm
Greedy Algorithms:

- basic concept, explanation to several problems using greedy algorithms

Optimization and Common Tricks:

- prefix sum, delta array, sliding windows(two pointers), precomputation, discretization, etc.

Constructive Algorithms, Special Tasks:

- constructive algorithms, introduction to interactive tasks / output-only tasks

Functional Programming:

- introduction to lambda calculus, Haskell: basic syntax, functions, containers

Computational Geometry:

- concept and implementation on basic computational geometry: point, line, segment, polygon, convex hull,
etc.

Game Theory:

- impartial combinatorial games: Nim game, Sprague-Grundy theorem, sum of games, etc.

Vous aimerez peut-être aussi