-{"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/num_methods/simulated_annealing.html", "url": "https://cp-algorithms.com/num_methods/simulated_annealing.html", "title": "Simulated Annealing", "content_html": "<h1>Simulated Annealing</h1>\n<p><strong>Simulated Annealing (SA)</strong> is a randomized algorithm, which approximates the global optimum of a function. It's called a randomized ...</p>", "image": null, "date_modified": "2025-03-24T20:26:18+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/num_methods/ternary_search.html", "url": "https://cp-algorithms.com/num_methods/ternary_search.html", "title": "Ternary Search", "content_html": "<h1>Ternary Search</h1>\n<p>We are given a function $f(x)$ which is unimodal on an interval $[l, r]$. By unimodal function, we mean one of two behaviors of the functio...</p>", "image": null, "date_modified": "2025-03-24T20:15:38+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/string/manacher.html", "url": "https://cp-algorithms.com/string/manacher.html", "title": "Manacher's Algorithm - Finding all sub-palindromes in O(N)", "content_html": "<h1>Manacher's Algorithm - Finding all sub-palindromes in $O(N)$</h1>\n<h2>Statement</h2>\n<p>Given string $s$ with length $n$. Find all the pairs $(i, j)$ such that substri...</p>", "image": null, "date_modified": "2025-03-24T19:49:18+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/tags.html", "url": "https://cp-algorithms.com/tags.html", "title": "Tag index", "content_html": "<h1>Tags</h1>\n<p>This file contains a global index of all tags used on the pages.</p>\n<h6>tags.md:74-96/name { #tags.md:74-96/slug }</h6>", "image": null, "date_modified": "2025-03-09T12:43:34+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": "2025-03-08T07:54:08+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/dynamic_programming/divide-and-conquer-dp.html", "url": "https://cp-algorithms.com/dynamic_programming/divide-and-conquer-dp.html", "title": "Divide and Conquer DP", "content_html": "<h1>Divide and Conquer DP</h1>\n<p>Divide and Conquer is a dynamic programming optimization.</p>\n<h3>Preconditions</h3>\n<p>Some dynamic programming problems have a recurrence of ...</p>", "image": null, "date_modified": "2025-03-05T13:09:38+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/combinatorics/burnside.html", "url": "https://cp-algorithms.com/combinatorics/burnside.html", "title": "Burnside's lemma / P\u00f3lya enumeration theorem", "content_html": "<h1>Burnside's lemma / P\u00f3lya enumeration theorem</h1>\n<h2>Burnside's lemma</h2>\n<p><strong>Burnside's lemma</strong> was formulated and proven by <strong>Burnside</strong> in 1897, but historically...</p>", "image": null, "date_modified": "2025-02-06T21:26:53+00:00", "authors": [], "tags": null}, {"id": "https://cp-algorithms.com/sequences/longest_increasing_subsequence.html", "url": "https://cp-algorithms.com/sequences/longest_increasing_subsequence.html", "title": "Longest increasing subsequence", "content_html": "<h1>Longest increasing subsequence</h1>\n<p>We are given an array with $n$ numbers: $a[0 \\dots n-1]$.\nThe task is to find the longest, strictly increasing, subsequence...</p>", "image": null, "date_modified": "2025-01-27T22:49:43+00:00", "authors": [], "tags": null}, {"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/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}]}
0 commit comments