-{"version": "https://jsonfeed.org/version/1", "title": "Algorithms for Competitive Programming", "home_page_url": "https://cp-algorithms.com/", "feed_url": "https://cp-algorithms.com/feed_json_updated.json", "description": "The goal of this project is to translate the wonderful resource http://e-maxx.ru/algo which provides descriptions of many algorithms and data structures especially popular in field of competitive programming. Moreover we want to improve the collected knowledge by extending the articles and adding new articles to the collection.", "icon": null, "authors": [], "language": "en", "items": [{"id": "https://cp-algorithms.com/graph/hld.html", "url": "https://cp-algorithms.com/graph/hld.html", "title": "Heavy-light decomposition", "content_html": "<h1>Heavy-light decomposition</h1>\n<p><strong>Heavy-light decomposition</strong> is a fairly general technique that allows us to effectively solve many problems that come down to ...</p>", "image": null, "date_modified": "2025-01-27T13:49:02+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/geometry/planar.html", "url": "https://cp-algorithms.com/geometry/planar.html", "title": "Finding faces of a planar graph", "content_html": "<h1>Finding faces of a planar graph</h1>\n<p>Consider a graph $G$ with $n$ vertices and $m$ edges, which can be drawn on a plane in such a way that two edges intersect...</p>", "image": null, "date_modified": "2025-01-13T22:21:04+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/others/tortoise_and_hare.html", "url": "https://cp-algorithms.com/others/tortoise_and_hare.html", "title": "Tortoise and Hare Algorithm (Linked List cycle detection)", "content_html": "<h1>Floyd's Linked List Cycle Finding Algorithm</h1>\n<p>Given a linked list where the starting point of that linked list is denoted by <strong>head</strong>, and there may or may ...</p>", "image": null, "date_modified": "2025-01-10T01:35:26+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/dynamic_programming/intro-to-dp.html", "url": "https://cp-algorithms.com/dynamic_programming/intro-to-dp.html", "title": "Introduction to Dynamic Programming", "content_html": "<h1>Introduction to Dynamic Programming</h1>\n<p>The essence of dynamic programming is to avoid repeated calculation. Often, dynamic programming problems are naturall...</p>", "image": null, "date_modified": "2025-01-09T19:52:23+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/algebra/fft.html", "url": "https://cp-algorithms.com/algebra/fft.html", "title": "Fast Fourier transform", "content_html": "<h1>Fast Fourier transform</h1>\n<p>In this article we will discuss an algorithm that allows us to multiply two polynomials of length $n$ in $O(n \\log n)$ time, which ...</p>", "image": null, "date_modified": "2025-01-06T22:43:17+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/algebra/phi-function.html", "url": "https://cp-algorithms.com/algebra/phi-function.html", "title": "Euler's totient function", "content_html": "<h1>Euler's totient function</h1>\n<p>Euler's totient function, also known as <strong>phi-function</strong> $\\phi (n)$, counts the number of integers between 1 and $n$ inclusive, w...</p>", "image": null, "date_modified": "2024-12-30T12:31:26+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/algebra/bit-manipulation.html", "url": "https://cp-algorithms.com/algebra/bit-manipulation.html", "title": "Bit manipulation", "content_html": "<h1>Bit manipulation</h1>\n<h2>Binary number</h2>\n<p>A <strong>binary number</strong> is a number expressed in the base-2 numeral system or binary numeral system, it is a method of math...</p>", "image": null, "date_modified": "2024-12-20T21:09:03+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/num_methods/binary_search.html", "url": "https://cp-algorithms.com/num_methods/binary_search.html", "title": "Binary Search", "content_html": "<h1>Binary search</h1>\n<p><strong>Binary search</strong> is a method that allows for quicker search of something by splitting the search interval into two. Its most common applica...</p>", "image": null, "date_modified": "2024-12-20T18:47:34+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/data_structures/sqrt_decomposition.html", "url": "https://cp-algorithms.com/data_structures/sqrt_decomposition.html", "title": "Sqrt Decomposition", "content_html": "<h1>Sqrt Decomposition</h1>\n<p>Sqrt Decomposition is a method (or a data structure) that allows you to perform some common operations (finding sum of the elements of ...</p>", "image": null, "date_modified": "2024-12-20T11:18:42+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/graph/edge_vertex_connectivity.html", "url": "https://cp-algorithms.com/graph/edge_vertex_connectivity.html", "title": "Edge connectivity / Vertex connectivity", "content_html": "<h1>Edge connectivity / Vertex connectivity</h1>\n<h2>Definition</h2>\n<p>Given an undirected graph $G$ with $n$ vertices and $m$ edges.\nBoth the edge connectivity and the v...</p>", "image": null, "date_modified": "2024-11-28T08:11:23+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/graph/topological-sort.html", "url": "https://cp-algorithms.com/graph/topological-sort.html", "title": "Topological Sorting", "content_html": "<h1>Topological Sorting</h1>\n<p>You are given a directed graph with $n$ vertices and $m$ edges.\nYou have to find an <strong>order of the vertices</strong>, so that every edge lead...</p>", "image": null, "date_modified": "2024-11-20T15:22:50+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/string/suffix-automaton.html", "url": "https://cp-algorithms.com/string/suffix-automaton.html", "title": "Suffix Automaton", "content_html": "<h1>Suffix Automaton</h1>\n<p>A <strong>suffix automaton</strong> is a powerful data structure that allows solving many string-related problems. </p>\n<p>For example, you can search for a...</p>", "image": null, "date_modified": "2024-11-08T19:11:20+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/dynamic_programming/knapsack.html", "url": "https://cp-algorithms.com/dynamic_programming/knapsack.html", "title": "Knapsack Problem", "content_html": "<h1>Knapsack Problem</h1>\n<p>Prerequisite knowledge: <a href=\"https://cp-algorithms.com/dynamic_programming/intro-to-dp.html\">Introduction to Dynamic Programming</a></p>\n<h2>Introduc...</h2>", "image": null, "date_modified": "2024-10-31T17:00:30+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/combinatorics/binomial-coefficients.html", "url": "https://cp-algorithms.com/combinatorics/binomial-coefficients.html", "title": "Binomial Coefficients", "content_html": "<h1>Binomial Coefficients</h1>\n<p>Binomial coefficients $\\binom n k$ are the number of ways to select a set of $k$ elements from $n$ different elements without taking...</p>", "image": null, "date_modified": "2024-10-22T23:31:25+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/combinatorics/inclusion-exclusion.html", "url": "https://cp-algorithms.com/combinatorics/inclusion-exclusion.html", "title": "The Inclusion-Exclusion Principle", "content_html": "<h1>The Inclusion-Exclusion Principle</h1>\n<p>The inclusion-exclusion principle is an important combinatorial way to compute the size of a set or the probability of c...</p>", "image": null, "date_modified": "2024-10-22T23:31:25+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/graph/strongly-connected-components.html", "url": "https://cp-algorithms.com/graph/strongly-connected-components.html", "title": "Strongly Connected Components and Condensation Graph", "content_html": "<h1>Strongly connected components and the condensation graph</h1>\n<h2>Definitions</h2>\n<p>Let $G=(V,E)$ be a directed graph with vertices $V$ and edges $E \\subseteq V \\time...</p>", "image": null, "date_modified": "2024-10-22T23:31:25+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/geometry/nearest_points.html", "url": "https://cp-algorithms.com/geometry/nearest_points.html", "title": "Finding the nearest pair of points", "content_html": "<h1>Finding the nearest pair of points</h1>\n<h2>Problem statement</h2>\n<p>Given $n$ points on the plane. Each point $p_i$ is defined by its coordinates $(x_i,y_i)$. It is ...</p>", "image": null, "date_modified": "2024-10-22T23:26:15+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/sequences/k-th.html", "url": "https://cp-algorithms.com/sequences/k-th.html", "title": "K-th order statistic in O(N)", "content_html": "<h1>$K$th order statistic in $O(N)$</h1>\n<p>Given an array $A$ of size $N$ and a number $K$. The problem is to find $K$-th largest number in the array, i.e., $K$-th o...</p>", "image": null, "date_modified": "2024-10-20T18:33:37+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/algebra/euclid-algorithm.html", "url": "https://cp-algorithms.com/algebra/euclid-algorithm.html", "title": "Euclidean algorithm for computing the greatest common divisor", "content_html": "<h1>Euclidean algorithm for computing the greatest common divisor</h1>\n<p>Given two non-negative integers $a$ and $b$, we have to find their <strong>GCD</strong> (greatest common ...</p>", "image": null, "date_modified": "2024-10-15T10:56:28+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/algebra/linear-diophantine-equation.html", "url": "https://cp-algorithms.com/algebra/linear-diophantine-equation.html", "title": "Linear Diophantine Equations", "content_html": "<h1>Linear Diophantine Equation</h1>\n<p>A Linear Diophantine Equation (in two variables) is an equation of the general form:</p>\n<p>$$ax + by = c$$</p>\n<p>where $a$, $b$, $c$ are...</p>", "image": null, "date_modified": "2024-10-15T09:57:28+00:00", "authors": [], "tags": null}]}
0 commit comments