Important: The following is subject to change. Please visit this page frequently to get the most up-to-date information.


See: How to join the online training sessions

Date Session 1
13:00 – 15:20
Session 2
15:30 – 17:50
Advanced Intermediate For all trainees
2021-01-30 INTSolutions to HKOI 2020/21
Final Event (Junior Group)
14:00 – 15:20
INTSolutions to HKOI 2020/21
Final Event (Senior Group)
15:30 – 16:50
2021-02-06 INT

Introduction to HKOI

orientation, competitive programming and Big-O

Wong Man Hang, Wong Tsz Chun


Mathematics in OI (I)

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

Chiu Long Hin Vincent

2021-02-13 no training
2021-02-20 ADV

Dynamic Programming (I)

discussion of classical DP problems: knapsack, matrix multiplication, etc.

Chow King Wang


Programming using C++

data storage, data I/O, data manipulation, useful C++ features

Wong Man Hang


Recursion, Divide and Conquer

basic concept, exhaustion, branch and bound, Master Theorem

Chan King Kai

2021-02-27 ADV

Data Structures (II)

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

Yuen Lok Kan Ethen


Searching and Sorting

searching algorithms, sorting algorithms

Li Cheuk Man


Optimization and Common Tricks

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

Cheng Tsz Ying

2021-03-06 ADV

Graph (II)

shortest path algorithms for weighted graphs, minimum spanning tree

Chung Wai Jit


Greedy Algorithms

basic concept, explanation to several problems using greedy algorithms

Lee Ching Hei


Constructive Algorithms, Special Tasks

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

Wong Tsz Chun

2021-03-13 HKOJMini Competition (I)
13:00 – 16:30
INTSolutions to Mini Competition (I)
16:50 – 17:50
2021-03-20 ADV

Dynamic Programming (II)

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

Ng Yau Fu


Data Structures (I)

queue, stack, linked list

Chan Wai Chi


Mathematics in OI (II)

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

Li Cheuk Man

2021-03-27 HKOJMini Competition (II)
13:00 – 16:30
INTSolutions to Mini Competition (II)
16:50 – 17:50
2021-04-03 ADV

Data Structures (III)

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

Wong Yik Chun


Graph (I)

basic concepts, graph representation, grid graph, depth first search, flood fill, breadth first search

Chan Wai Chi


Advanced C++ STL

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

Wai Ka Hei

2021-04-10 ADV

Graph (III)

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

Choi Chun Ming


Dynamic Programming (Ia)

basic concepts, maximum subarray sum, knapsack, longest common subsequence

Chow King Wang


Computational Geometry

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

Chiu Long Hin Vincent

2021-04-17 TBDTeam Formation Test
2021-04-24 ADV

Dynamic Programming (III)

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

Chow Kwan Ting Jeremy


Data Structures (IIa)

binary heap, disjoint-set union-find

Yuen Lok Kan Ethen

2021-05-01 ADV

Graph (IV)

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

Liu Man Kai


Graph (IIa)

shortest path algorithms for weighted graphs

Chung Wai Jit

2021-05-08 HKOJMini Competition (III)
13:00 – 16:30
INTSolutions to Mini Competition (III)
16:50 – 17:50
2021-05-15 ADV

String Algorithms

trie, hashing, KMP Algorithm, suffix array, suffix tree, Z Algorithm, Manacher’s Algorithm, Aho–Corasick Algorithm

Chow Kwan Ting Jeremy


Dynamic Programming (Ib)

multi-dimensional DP problems

Chow King Wang