Raymond's Learning Path¶
Everything we have covered, newest lesson first. Each lesson links to the pages that explain it, and to the problem set that practised it.
Timeline¶
| Date | Lesson | What we covered | Read | Problem set |
|---|---|---|---|---|
| 10-25 | Set 13 wrap-up; brute force over subsets | Raymond explains 1027D's three states; Medium Demon Problem easy (push depth forward in topological order) and hard (push size forward, count only popped vertices); choose / skip DFS and for mask in range(1 << n); Petr and a Combination Lock; Python's % on negative numbers |
Topological Sort Brute Force over Subsets Functional Graphs |
— |
| 10-18 | Functional graphs II; peeling chains (Set 13) | Three states on a functional graph (1027D, 884C); Kahn's algorithm on a graph with cycles removes the tails and leaves the cycles: Medium Demon Problem easy and hard, Selling a Menagerie | Functional Graphs Topological Sort |
— |
| 10-11 | Functional graphs (Set 13) | Review of Delivery Dilemma and Robert Hood; in-degree and out-degree; one outgoing edge per node → cycles with tails, permutation → cycles only; Badge, Books Exchange easy (O(n²)) and hard (shared visited list, O(n)); list vs dictionary; idea of 2033E (split every cycle into pieces of length ≤ 2) | Functional Graphs Difference Array Sorting & Greedy |
— |
| 10-04 | Greedy homework review (Set 12) | Deep Down Below debugged with a hand-made test; The Delivery Dilemma from O(n²) to O(n) (copy() and max() cost O(n)); Robert Hood and Mrs Hood (each job is a range update on start days → difference array); Move Back at a Cost |
Sorting & Greedy Difference Array Complexity & Constraints |
— |
| 09-27 | Sorting & greedy (Set 12) | Stable Groups (sort, fill the cheapest gaps first, 64-bit PyPy for 10^18); Friends and the Restaurant (surplus + two pointers); Deep Down Below (need per cave, binary search on the answer) | Sorting & Greedy Complexity & Constraints Python for CP |
— |
| 09-20 | Stress testing; two pointers finale; greedy | Set 11 D/E (An impassioned circulation of affection, MEX vs MED); finding a WA on test 6 by stress testing; first lesson on sorting and greedy | Stress Testing Two Pointers & Sliding Window Sorting & Greedy |
11-TwoPointers(review) (0/5) |
| 09-06 | Two pointers review | Set 11: Cellular Network, They Are Everywhere, Quiz Master | Two Pointers & Sliding Window | 11-TwoPointers(review) (0/5) |
| 08-30 | Templates homework | Alternating String; build PrefixSum.py and DifferenceArray.py from memory | Prefix Sum Difference Array |
— |
| 08-24 | Sums of Segments | Prefix sums of prefix sums + binary search editorial; difference array review | Prefix Sum Difference Array Binary Search |
— |
| 07-26 | Prefix-sum templates | Writing PrefixSum classes, prefix counts on strings (Set 10) | Prefix Sum | 10-prefixsum (2/9) |
| 07-19 | Knapsack | 0/1, unbounded and bounded knapsack | Knapsack | 9-Jun19 (3/3) |
| 07-12 | DP recap, LCS, topological sort | LCS table and reconstruction, Kahn's algorithm | LCS Topological Sort |
— |
| 07-05 | DP on graphs and grids | EDU DP G Longest Path, H Grid 1 | Topological Sort LCS |
— |
| 06-28 | DP practice | AtCoder EDU DP A–E, Set 8 | DP Basics Knapsack |
8-dp-1 (0/3) |
| 06-21 | Introduction to DP | States and transitions, counting stairs, memoized recursion | DP Basics | — |
| 06-14 | bisect | bisect_left / bisect_right for counting in sorted lists | Binary Search | — |
| 06-07 | Difference arrays | Range updates, Karen and Coffee, Covered Points Count, Counting Rectangles | Difference Array Prefix Sum |
7-Intervals (5/8) |
| 05-31 | Homework review, 2D prefix sums | Make It Connected review; 2D prefix sum (OJ P1101) | Prefix Sum | — |
| 05-17 | DSU practice | Learning Languages, News Distribution with DSU | DSU & Kruskal | — |
| 05-10 | DSU and Kruskal | Union-find with path compression and union by size, minimum spanning tree | DSU & Kruskal | 6-DSU (4/8) |
| 05-03 | Dijkstra | Heap Dijkstra, shortest path tree (Paths and Trees), roads vs trains (Jzzhu and Cities) | Shortest Paths (Dijkstra) | — |
| 04-12 | BFS and backtracking | BFS shortest paths with path recovery, grid BFS, knight moves, 4/8-queens with backtracking | BFS Backtracking |
— |
| 03-29 | Adjacency lists and sets | Adjacency list, Python set and its costs, deleting edges, tree properties, unicyclic graphs | Storage & Traversal Graph Concepts |
— |
| 03-22 | Graph modelling, trees, diameter | Connected graph, degree, tree, leaf, reasoning from the leaves, tree diameter by two searches | Graph Concepts Tree Diameter |
— |
| 02-22 | Algorithm map and graph theory intro | Overview of two pointers / binary search / prefix sums / DP / graphs; DFS and BFS introduced | Graph Concepts DFS (Flood Fill) |
5-Graph (10/16) |
| 02-10 | Mixed practice | Set 4: prefix sums, sorting + binary search, simulation | Complexity & Constraints Prefix Sum |
4-Misc (7/10) |
| 01-26 | Two pointers | Set 3: windows, opposite ends, binary search on the answer (Hamburgers) | Two Pointers & Sliding Window | 3-TwoPointers (5/6) |
| 01-23 | First problem sets | Set 1 and Set 2: binary search on the answer, first Codeforces submissions | Complexity & Constraints Binary Search |
USACO-Raymond-1 (1/6) 2-BinarySearch (4/6) |
| 01-16 | From Bronze to Silver: overview slides | Python custom sorting, prefix sums, difference arrays, sliding window, binary search on the answer, DFS flood fill, BFS shortest path | Python for CP Sorting & Greedy DFS (Flood Fill) BFS |
— |
Topics by area¶
- Python: Python for CP · Stress Testing
- Basics: Complexity & Constraints · Sorting & Greedy · Prefix Sum · Difference Array · Binary Search · Two Pointers & Sliding Window
- Search: DFS (Flood Fill) · BFS · Backtracking · Brute Force over Subsets
- Graph Theory: Graph Concepts · Storage & Traversal · Tree Diameter · Shortest Paths (Dijkstra) · Topological Sort · Functional Graphs
- Data Structures: DSU & Kruskal
- Dynamic Programming: DP Basics · Knapsack · LCS
Problem sets¶
Dates come from submission history.
| # | Set | Period | Solved | Avg. Rating |
|---|---|---|---|---|
| 1 | USACO-Raymond-1 | 2026-01-23 ~ 2026-01-23 | 1/6 | 1100 |
| 2 | 2-BinarySearch | 2026-01-24 ~ 2026-01-25 | 4/6 | 1133 |
| 3 | 3-TwoPointers | 2026-01-26 ~ 2026-02-04 | 5/6 | 1283 |
| 4 | 4-Misc | 2026-02-10 ~ 2026-02-14 | 7/10 | 1070 |
| 5 | 5-Graph | 2026-03-05 ~ 2026-05-21 | 10/16 | 1619 |
| 6 | 6-DSU | 2026-05-15 ~ 2026-05-30 | 4/8 | 1588 |
| 7 | 7-Intervals | 2026-06-02 ~ 2026-06-23 | 5/8 | 1675 |
| 8 | 8-dp-1 | 2026-06-27 ~ 2026-07-12 | 0/3 | 1367 |
| 9 | 9-Jun19 | 2026-07-21 ~ 2026-07-21 | 3/3 | — |
| 10 | 10-prefixsum | 2026-07-31 ~ 2026-09-06 | 2/9 | 1622 |
| 11 | 11-TwoPointers(review) | 2026-09-07 ~ 2026-09-12 | 0/5 | 1660 |
11 problem sets, 80 problems, 41 solved.
Credits & licenses¶
This is a free, non-commercial study resource. Some pages borrow figures, explanations or problem choices from OI Wiki (CC BY-SA 4.0) and USACO Guide (CC BY-NC-SA 4.0). Each page lists exactly what was borrowed, from which module and authors, and what was changed; borrowed parts keep their original license.