tutorial

Implementing FFT

A derivation-oriented guide to FFT implementations, moving from recursive Cooley-Tukey to iterative and in-place variants without explicit bit reversal.

On using RSS feeds

A short practical note on why RSS feeds are useful and how to start using them to follow blogs, research feeds, and other updates.

Convenient and near-optimal binary search on floating point numbers

A near-optimal floating-point binary search template that searches representable values via bit-casts instead of hard-coded iteration counts.

An elementary way of solving recurrences

An elementary way to solve recurrences by changing variables until simpler structure appears, recovering characteristic-equation intuition without heavy machinery.

The Akra-Bazzi theorem - a generalization of the master theorem for recurrences

A practical introduction to the Akra-Bazzi theorem as a way to analyze divide-and-conquer recurrences with unequal splits, floors, and offsets.

On lambdas, C++ and otherwise: the what, the why, and the how

A tutorial on lambdas, from lambda-calculus context and C++ closure mechanics to recursion, stateful patterns, STL use, and competitive-programming examples.

The Floyd-Warshall algorithm and its generalizations

A tour of Floyd-Warshall as an instance of aggregating over graph paths, leading to transitive closure, Kleene algebras, and the algebraic path problem.

User editorial for Codeforces Round 513 by Barcelona Bootcamp (rated, Div. 1 + Div. 2)

A user-written editorial for Codeforces Round 513, which did not have an editorial before.

Floors, ceilings and inequalities for beginners (with some programming tips)

A beginner guide to inequalities involving floors and ceilings, with algebraic rules, examples, identities, and programming-language caveats.

How to learn better, and what most people don't get about learning

A personal model of learning as building and querying a knowledge graph, with advice on theory, problem solving, creativity, feedback, and overfitting.

A comprehensive guide to permutations for beginners

A guide to permutations through orderings, cycles, and composition, with pointers to common competitive-programming applications.

Greedoids: a formal way to look at families of greedily-solvable problems

A tutorial on greedoids as a framework for understanding when greedy-style reasoning works, with examples from matroids, antimatroids, and related structures.

Probability 101, the intuition behind martingales and solving problems with them

An introduction to probability, conditional expectation, martingales, and stopping times, with math and competitive-programming examples.

GCC Optimization Pragmas

An explanation of GCC optimization and target pragmas, what common fake pragmas do not do, and when these flags help or hurt.