A personally curated archive of original algorithmic problems and lecture notes — every problem authored and set by hand — spanning NOIP through NOI and ACM-ICPC level. Centered on the algorithmic craft shared by informatics olympiads and ACM-ICPC-style contests: design, analysis, and proof — not low-level implementation.
This repository collects materials I created over years of competing and problem setting in algorithm contests — all original work:
- Lecture slides — notes prepared for teaching sessions.
- Original contest problems — problems I set for the National Olympiad in Informatics (NOI), provincial team selection, and mock contests.
Difficulty ranges from NOIP all the way up to NOI and ACM-ICPC level.
Whether you aim for OI, ACM-ICPC, or simply want to study rigorous algorithm design, I hope this archive offers something useful. If it does, a star would mean a lot — and would help more people discover it.
Each problem is preserved with three artifacts:
- statement — the problem description
- standard solution — a reference C++ implementation
- editorial — the algorithm explained, with correctness and complexity
.
├── Lectures/ Algorithm lecture slides, notes, and a difficulty-ordered guide
└── Setter/ Original problems, grouped by contest, with a spoiler-free guide
├── NOI/ National Olympiad in Informatics
├── BJTSC/ Beijing Team Selection Contest
└── NOIP/ National Olympiad in Informatics in Provinces
| Directory | Contents |
|---|---|
Lectures/ |
Lecture slides and notes on algorithms, with a difficulty-ordered guide covering key topics, prerequisites, and recommended levels. |
Setter/ |
A spoiler-free guide to the original problem sets, their sources, approximate difficulty, and suggested training order. |
Setter/NOI/ |
NOI problems, NOI-level mock contests, and problem-setting or validation archives. |
Setter/BJTSC/ |
Beijing Team Selection contests, joint provincial selection materials, and related training rounds. |
Setter/NOIP/ |
NOIP-level mock contests. |
Note — All lecture slides and editorials are written in Chinese.
The official test data (test points: .in / .out / .ans) for every original
problem is published separately as AwesomeAlgorithms_SetterData, a data mirror
of the Setter/ directory tree — one sub-folder per problem, original file names
kept.
- Download: AwesomeAlgorithms_SetterData.zip (Google Drive)
- Also available from GitHub Release v1.1
The archive includes its own README.md documenting the exact format.
- Code (standard solutions /
.cpp): MIT License - Content (problem statements, editorials, lecture slides): CC BY-NC-SA 4.0
- upd0910: Add difficulty-ordered guides for all lecture materials and a spoiler-free catalog of the problem sets, including prerequisites, intended levels, sources, and suggested study order.
- upd0909.2: Fix typos and minor issues; make the standard solutions C++17-compatible.
- upd0909.1: Release the official test data (AwesomeAlgorithms_SetterData) as GitHub Release v1.1.
- upd0908: Add 12 new lecture slides and the MIT License; complete the missing solutions for BJTSC Mock-1 and NOI Mock-1.