← Back
wzj52501

wzj52501/awesome-competitive-olympiad-algorithms

Original algorithmic contest problems and lecture notes — NOIP to NOI & ACM-ICPC level

View on GitHub ↗
acm-icpcalgorithmscompetitive-programmingcontestlecture-notesnoioiproblem-setting
Stars
264
Forks
30
Watchers
264
Open issues
0
Contributors
1
Language
C++
License
MIT License
Default branch
main
Created Sep 8, 2026Updated Sep 21, 2026

Star growth

Today—
This week—
This month—

Star history will appear here once this repo has been tracked for a couple of days.

README

awesome-competitive-olympiad-algorithms

wzj52501%2Fawesome-competitive-olympiad-algorithms | Trendshift

简体中文

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.

About

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

Structure

.
├── 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.

Test Data

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.

License

  • Code (standard solutions / .cpp): MIT License
  • Content (problem statements, editorials, lecture slides): CC BY-NC-SA 4.0

Updates

  • 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.