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

B7510YEUNG-B7510, City University of Hong Kong G600LI-G600, City University of Hong Kong
G600LI-G600, City University of Hong Kong
3610LI-3610, City University of Hong Kong 4307LI-4307, City University of Hong Kong
4307LI-4307, City University of Hong Kong

Pre-registration required to attend the training sessions. Walk-in is not allowed.

Week
Date
AM Session
10:00 – 13:00
PM Session
14:00 – 17:00
Level A Level B For all trainees
Week 7
2026-02-14
G600

Introduction to HKOI

orientation, competitive programming and Big-O

G600Solutions to HKOI and
HKGOI 2025/26 Final Event
Week 8
2026-02-21
B7510

Dynamic Programming (II)

topological Sort, DP on trees/directed acyclic graphs, bitwise DP, rolling array

Siu Lok Yin

G600

Programming in C++

useful C++ features & STL data structures, advanced C++ usage

Wong Cheuk Kiu

G600

Introduction to Linux

shell command and usage, file management, program development

Chan King Kai

Week 9
2026-02-28
B7510

Graph (III)

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

Wai Ka Hei

4307

Optimization and Common Tricks

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

Wong Cheuk Kiu

4307

Constructive Algos, Special Tasks (I)

constructive algorithms, machine building tasks, introduction to interactive tasks

Hsieh Chong Ho

Week 10
2026-03-07
B7510

Data Structures (IV)

revision on range query structures, lazy propagation, tries, persistent data structures, miscellanous tricks

Wong Chun

G600

Data Structures (II)

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

Yuen Lok Kan Ethen

G600Mini Competition (I)
Week 11
2026-03-14
B7510

Graph (IV)

graph connectivity: dfs trees, cut edge, articulation point, bridge-connected component, strongly/weakly connected component, graph shrinking trick

Wong Chun

G600

Graph (I)

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

Wong Cheuk Kiu

G600

Constructive Algos, Special Tasks (II)

introduction to communication tasks / output-only tasks

Yuen Lok Kan Ethen

Week 12
2026-03-21
B7510

Dynamic Programming (III)

DP optimization tricks: partial sum / heap speed up, monotone queue, convex hull using geometric approach, divide and conquer DP

Ko Kin Fung Nicholas

G600

Dynamic Programming (I)

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

Chow King Wang

G600Mini Competition (Teams)
Week 13
2026-03-28
4307EGOI Team Formation Test
Week 14
2026-04-04
No Training (BBQ)
Week 15
2026-04-11
3610

Graph (V)

euler path, euler cycle, centroid decomposition, heavy-light decomposition

Ko Kin Fung Nicholas

4307

Mathematics in OI (I)

computation and counting: greatest common divisor, modular arithmetic, fast exponential, prime numbers, combinations and permutations, inclusion/exclusion

Hsieh Chong Ho

4307

Game Theory

Nim, Sprague-Grundy theorem and applications

Wong Chun

Week 16
2026-04-18
3610

Flow and Graph Matching (I)

maximum flow, minimum cut, set partition model, graph modeling techniques

Yuen Lok Kan Ethen

G600

Graph (II)

shortest path algorithms for weighted graphs, minimum spanning tree

Chow King Wang

G600Mini Competition (II)
Week 17
2026-04-25
3610

Flow and Graph Matching (II)

bipartite matching, hall’s marriage theorem, flows with demands, related problems

Lu Yi Fung

G600

Data Structures (III)

segment tree, binary indexed tree, sparse table

Wong Cheuk Kiu

G600

Mathematics in OI (II)

combinatorics: combinatorial thinking, sequences, bijection, sums and expected value

Wong Chun

Week 18
2026-05-02
TBC

Misc Problem Discussion

ad-hoc, and using various skills to tackle interesting problems

Yuen Lok Kan Ethen, Lu Yi Fung

TBCMini Competition (III)
Week 19
2026-05-09
TBCTBC
Week 20
2026-05-16
No Training
Week 21
2026-05-23
2026-05-24
TBCTeam Formation Test
(2 days)