Creativity, Teaching & Engineering
A technical blog sharing programming insights, math exploration, creative learning, and AI-powered education.
Programming Tutorials
Learn algorithms, data structures, and clean problem-solving strategies.
Math & IA Models
Explore creative IB Math IA, calculus models, voting theory, and real-world applications.
Teaching & Blog Writing
Sharing teaching experiences, educational tools, and creative learning methods.
Latest Articles
-
Digit DP
Digit DP refers to a DP technique that solves problems that involve digits. The general style of said problems are: How many integers in the range from [L, R] satisfy some condition. Notice that L, R will always be huge (L,R <= 1e18) in order to prevent naive looping. To solve these problems, we need…
-
Knapsack
There is a shop with N items, each with a different weight W and value V. We want to select some subset of these N items such that the sum of their values V is maximized and the sum of their weights W does not exceed some threshold C. 0/1 Knapsack: There exists only 1…
-
BFS
BFS is one of the main graph traversal algorithms. In DFS, we recursively travel as deep as possible to find paths, while in BFS we explore the graph layer by layer. We can imagine BFS as a fire spreading from the start node. Initially it is only at the start, at second 1 it spreads…
-
LIS
The longest increasing subsequence (LIS) problem is one of the most common in competitive programming. Given a sequence A, we want to find some sequence A_1, A_2 … A_k such that A_1 < A_2 < A_3 < A_k, hence a strictly increasing subsequence. Additionally, we want to find the subsequence with the maximum possible length. …
-
DFS
DFS is one of the main graph search algorithms. The idea of DFS is to start a vertex, then recursively visit each adjacent unvisited vertex in order. vector<vector<int>> adj; vector<bool> vis; void dfs(int v){ vis[v] = true; for(int u : adj[v]){ if(!vis[u]){ dfs(u); }} DFS can…
-
Dijkstra
Given a weighted undirected or directed graph with non-negative weights, you want to solve the Single Source Shortest Path problem. From a start vertex v, you want to find the shortest path from v to every other node in the graph, hence why it is called single source shortest path. Dijkstra’s algorithm is the most…
A Little About Me
I teach, write, and explore math models, creative coding, and algorithm thinking. My passion lies in using technology to inspire learning.