Practice Ladders¶
Practice ladders are the focused practice layer of this repo.
Use a ladder when you already know the rough idea and want enough same-family reps to make recognition and execution stable.
What This Layer Is For¶
Use ladders when:
- you want to stay inside one subtopic long enough to stop guessing
- the topic page made sense, but you still need deliberate repetition
- you want a small ordered progression instead of a random judge list
Do not use ladders as the first door when:
- syntax or local workflow is still the bottleneck next door: Start Here
- you cannot yet explain why the technique works next door: Learning Areas
- you want contest-style switching across several families next door: Mixed Rounds
The Default Ladder Loop¶
The repo-wide default loop is:
- read one topic page in
topics/ - open the corresponding ladder here
- solve one anchored repo note
- compare your solution against the note's
Recognition CueandProblem-Specific Transformation - reopen Notebook or Build Kit only if retrieval or implementation is the weak point
- move to Mixed Rounds or a track playbook only after the family feels stable
Choose A Ladder¶
| If you need reps in... | Start with | Representative first note |
|---|---|---|
| C++ workflow and first contest habits | Foundations -> C++ Language | Weird Algorithm |
| bread-and-butter array patterns | Foundations -> Prefix Sums | Static Range Sum Queries |
| ordered scans and greedy matching | Foundations -> Two Pointers | Apartments |
| connectivity and offline unions | Data Structures -> DSU | C11XU |
| range queries and updates | Data Structures -> Fenwick Tree | CVP00001 |
| state design over subsets or sequences | DP -> Bitmask DP | VMMARBLE |
| trees, paths, and graph structure | Graphs -> LCA or Graphs -> Tree DP | Company Queries II or VOSTRIP |
| string matching and reuse of prefix structure | Strings -> KMP or Strings -> Trie | String Matching or Word Combinations |
| geometric predicates and polygon basics | Geometry -> Vector And Orientation | Point Location Test |
| advanced modeling / olympiad-style construction | Advanced -> Constructive | Build the Permutation |
What To Do Inside One Ladder¶
Use the same rhythm for every mature ladder:
- read the ladder page to see scope, entry gate, and nearby topics
- solve the first note with an honest no-notes attempt
- read only the note sections that reveal the transformation you missed
- write or clean one reusable solution
- move to the next note only after the cue and invariant feel transferable
Exit Doors¶
When a ladder exposes a weakness, use the smallest next door:
| If the problem is... | Reopen |
|---|---|
| I still do not trust the idea | the corresponding tutorial in topics/ |
| I know the idea but my code drifts | Build Kit |
| I know the family and need more reps | Problem Finder |
| I know several ladders and switch badly | Mixed Rounds |
| I am now training toward one format | Contest Playbooks |
Representative Ladder Doors¶
- Foundations -> Sorting
- Data Structures -> Segment Tree
- DP -> Interval DP
- Graphs -> Shortest Paths
- Graphs -> Flow
- Strings -> Suffix Automaton
- Geometry -> Sweep Line
- Advanced -> Randomized Algorithms
Ladder Contract¶
Every mature ladder should make these things easy to answer:
- what this subtopic is really for
- which repo notes are the best first anchors
- which topic page to reopen when the idea is still fuzzy
- which template or notebook page helps when implementation is the weak point
- where to go next after the ladder is no longer the bottleneck