0% found this document useful (0 votes)
77 views2 pages

HK Training Sessions

The document outlines training sessions covering a range of topics in mathematics, computer science, and algorithms. These include: 1. Number theory, combinatorics, probability, and C++ syntax and data structures. 2. Common data structures like queues, stacks, trees, and graphs as well as their algorithms. 3. Dynamic programming, recursion, string and greedy algorithms, and computational geometry. 4. Additional topics like functional programming, game theory, and optimization techniques.

Uploaded by

prasadkvss
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views2 pages

HK Training Sessions

The document outlines training sessions covering a range of topics in mathematics, computer science, and algorithms. These include: 1. Number theory, combinatorics, probability, and C++ syntax and data structures. 2. Common data structures like queues, stacks, trees, and graphs as well as their algorithms. 3. Dynamic programming, recursion, string and greedy algorithms, and computational geometry. 4. Additional topics like functional programming, game theory, and optimization techniques.

Uploaded by

prasadkvss
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 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.

You might also like