<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel><title>Algoritmos para Programação Competitiva</title><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.</description><link>https://paulofilipe.com/cp-algorithms/</link><atom:link href="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml" rel="self" type="application/rss+xml" /><docs>https://github.com/filipemsilv4/cp-algorithms</docs><language>en</language> <pubDate>Sun, 13 Oct 2024 16:28:34 -0000</pubDate> <lastBuildDate>Sun, 13 Oct 2024 16:28:34 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.15.0</generator> <item> <title>🇧🇷 Navegação</title> <description>&lt;p&gt;Artigos com a bandeira 🇺🇸 estão em inglês. Artigos com a bandeira 🇧🇷 já foram traduzidos para o português.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Página Inicial&lt;ul&gt;&lt;li&gt;[🇧🇷 Página Inicial](index....&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description><link>https://paulofilipe.com/cp-algorithms/navigation.html</link> <pubDate>Sun, 13 Oct 2024 13:27:34 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/navigation.html</guid> </item> <item> <title>🇧🇷 Função de Prefixo - Algoritmo de Knuth–Morris–Pratt</title> <description>&lt;h1&gt;Função de Prefixo. Algoritmo de Knuth–Morris–Pratt&lt;/h1&gt;&lt;h2&gt;Definição da função de prefixo&lt;/h2&gt;&lt;p&gt;Dada uma string $s$ de comprimento $n$.A &lt;strong&gt;função de prefixo&lt;/strong&gt; para...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/string/prefix-function.html</link> <pubDate>Sun, 13 Oct 2024 13:27:34 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/string/prefix-function.html</guid> </item> <item> <title>🇧🇷 Algoritmo de Rabin-Karp para busca de padrões em strings</title> <description>&lt;h1&gt;Algoritmo de Rabin-Karp para busca de padrões em strings&lt;/h1&gt;&lt;p&gt;Este algoritmo é baseado no conceito de hashing, então se você não estiver familiarizado com hash...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/string/rabin-karp.html</link> <pubDate>Sat, 12 Oct 2024 20:28:33 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/string/rabin-karp.html</guid> </item> <item> <title>🇺🇸 Disjoint Set Union</title> <description>&lt;h1&gt;Disjoint Set Union&lt;/h1&gt;&lt;p&gt;This article discusses the data structure &lt;strong&gt;Disjoint Set Union&lt;/strong&gt; or &lt;strong&gt;DSU&lt;/strong&gt;.Often it is also called &lt;strong&gt;Union Find&lt;/strong&gt; because of its two ...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/data_structures/disjoint_set_union.html</link> <pubDate>Sat, 12 Oct 2024 07:13:20 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/data_structures/disjoint_set_union.html</guid> </item> <item> <title>🇺🇸 The Stern-Brocot Tree and Farey Sequences</title> <description>&lt;h1&gt;The Stern-Brocot tree and Farey sequences&lt;/h1&gt;&lt;h2&gt;Stern-Brocot tree&lt;/h2&gt;&lt;p&gt;The Stern-Brocot tree is an elegant construction to represent the set of all positive frac...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/others/stern_brocot_tree_farey_sequences.html</link> <pubDate>Sat, 12 Oct 2024 07:12:15 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/others/stern_brocot_tree_farey_sequences.html</guid> </item> <item> <title>🇺🇸 Sprague-Grundy theorem. Nim</title> <description>&lt;h1&gt;Sprague-Grundy theorem. Nim&lt;/h1&gt;&lt;h2&gt;Introduction&lt;/h2&gt;&lt;p&gt;This theorem describes the so-called &lt;strong&gt;impartial&lt;/strong&gt; two-player game,i.e. those in which the available moves a...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/game_theory/sprague-grundy-nim.html</link> <pubDate>Fri, 11 Oct 2024 21:42:54 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/game_theory/sprague-grundy-nim.html</guid> </item> <item> <title>🇺🇸 Strongly Connected Components and Condensation Graph</title> <description>&lt;h1&gt;Strongly connected components and the condensation graph&lt;/h1&gt;&lt;h2&gt;Definitions&lt;/h2&gt;&lt;p&gt;Let $G=(V,E)$ be a directed graph with vertices $V$ and edges $E \subseteq V \time...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/graph/strongly-connected-components.html</link> <pubDate>Fri, 11 Oct 2024 21:27:41 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/graph/strongly-connected-components.html</guid> </item> <item> <title>🇺🇸 Introduction to Dynamic Programming</title> <description>&lt;h1&gt;Introduction to Dynamic Programming&lt;/h1&gt;&lt;p&gt;The essence of dynamic programming is to avoid repeated calculation. Often, dynamic programming problems are naturall...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/dynamic_programming/intro-to-dp.html</link> <pubDate>Fri, 11 Oct 2024 21:14:52 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/dynamic_programming/intro-to-dp.html</guid> </item> <item> <title>🇺🇸 Bellman-Ford - finding shortest paths with negative weights</title> <description>&lt;h1&gt;Bellman-Ford Algorithm&lt;/h1&gt;&lt;p&gt;&lt;strong&gt;Single source shortest path with negative weight edges&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Suppose that we are given a weighted directed graph $G$ with $n$ vertic...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/graph/bellman_ford.html</link> <pubDate>Fri, 11 Oct 2024 21:11:42 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/graph/bellman_ford.html</guid> </item> <item> <title>🇺🇸 Sieve of Eratosthenes</title> <description>&lt;h1&gt;Sieve of Eratosthenes&lt;/h1&gt;&lt;p&gt;Sieve of Eratosthenes is an algorithm for finding all the prime numbers in a segment $[1;n]$ using $O(n \log \log n)$ operations.&lt;/p&gt;&lt;p&gt;T...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/algebra/sieve-of-eratosthenes.html</link> <pubDate>Fri, 11 Oct 2024 07:03:16 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/algebra/sieve-of-eratosthenes.html</guid> </item> <item> <title>🇧🇷 Busca em Largura (BFS)</title> <description>&lt;h1&gt;Busca em Largura (BFS)&lt;/h1&gt;&lt;p&gt;A busca em largura (BFS - Breadth First Search) é um dos algoritmos de busca mais básicos e essenciais em grafos.&lt;/p&gt;&lt;p&gt;Como resultado d...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/graph/breadth-first-search.html</link> <pubDate>Thu, 10 Oct 2024 17:59:56 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/graph/breadth-first-search.html</guid> </item> <item> <title>🇧🇷 Hashing de Strings</title> <description>&lt;h1&gt;Hashing de Strings&lt;/h1&gt;&lt;p&gt;Algoritmos de hashing são úteis na resolução de diversos problemas.&lt;/p&gt;&lt;p&gt;Queremos resolver o problema de comparar strings eficientemente.A...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/string/string-hashing.html</link> <pubDate>Thu, 10 Oct 2024 15:31:24 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/string/string-hashing.html</guid> </item> <item> <title>🇺🇸 Sqrt Decomposition</title> <description>&lt;h1&gt;Sqrt Decomposition&lt;/h1&gt;&lt;p&gt;Sqrt Decomposition is a method (or a data structure) that allows you to perform some common operations (finding sum of the elements of ...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/data_structures/sqrt_decomposition.html</link> <pubDate>Tue, 01 Oct 2024 02:06:32 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/data_structures/sqrt_decomposition.html</guid> </item> <item> <title>🇺🇸 Eulerian Path</title> <description>&lt;h1&gt;Finding the Eulerian path in $O(M)$&lt;/h1&gt;&lt;p&gt;A Eulerian path is a path in a graph that passes through all of its edges exactly once.A Eulerian cycle is a Eulerian...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/graph/euler_path.html</link> <pubDate>Sat, 14 Sep 2024 02:18:10 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/graph/euler_path.html</guid> </item> <item> <title>🇺🇸 Factorial modulo p</title> <description>&lt;h1&gt;Factorial modulo $p$&lt;/h1&gt;&lt;p&gt;In some cases it is necessary to consider complex formulas modulo some prime $p$, containing factorials in both numerator and denomin...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/algebra/factorial-modulo.html</link> <pubDate>Sun, 25 Aug 2024 06:11:12 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/algebra/factorial-modulo.html</guid> </item> <item> <title>🇺🇸 Knapsack Problem</title> <description>&lt;h1&gt;Knapsack Problem&lt;/h1&gt;&lt;p&gt;Prerequisite knowledge: &lt;a href=&#34;https://cp-algorithms.com/dynamic_programming/intro-to-dp.html&#34;&gt;Introduction to Dynamic Programming&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;Introduc...&lt;/h2&gt;</description><link>https://paulofilipe.com/cp-algorithms/dynamic_programming/knapsack.html</link> <pubDate>Thu, 15 Aug 2024 23:48:29 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/dynamic_programming/knapsack.html</guid> </item> <item> <title>🇺🇸 Extended Euclidean Algorithm</title> <description>&lt;h1&gt;Extended Euclidean Algorithm&lt;/h1&gt;&lt;p&gt;While the &lt;a href=&#34;euclid-algorithm.md&#34;&gt;Euclidean algorithm&lt;/a&gt; calculates only the greatest common divisor (GCD) of two integers $a$ an...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/algebra/extended-euclid-algorithm.html</link> <pubDate>Thu, 15 Aug 2024 07:16:54 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/algebra/extended-euclid-algorithm.html</guid> </item> <item> <title>🇺🇸 Suffix Array</title> <description>&lt;h1&gt;Suffix Array&lt;/h1&gt;&lt;h2&gt;Definition&lt;/h2&gt;&lt;p&gt;Let $s$ be a string of length $n$. The $i$-th suffix of $s$ is the substring $s[i \ldots n - 1]$.&lt;/p&gt;&lt;p&gt;A &lt;strong&gt;suffix array&lt;/strong&gt; will con...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/string/suffix-array.html</link> <pubDate>Fri, 02 Aug 2024 19:45:41 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/string/suffix-array.html</guid> </item> <item> <title>🇺🇸 Fenwick Tree</title> <description>&lt;h1&gt;Fenwick Tree&lt;/h1&gt;&lt;p&gt;Let $f$ be some group operation (a binary associative function over a set with an identity element and inverse elements) and $A$ be an array ...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/data_structures/fenwick.html</link> <pubDate>Wed, 31 Jul 2024 11:14:13 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/data_structures/fenwick.html</guid> </item> <item> <title>🇺🇸 0-1 BFS</title> <description>&lt;h1&gt;0-1 BFS&lt;/h1&gt;&lt;p&gt;It is well-known, that you can find the shortest paths between a single source and all other vertices in $O(|E|)$ using [Breadth First Search](bre...&lt;/p&gt;</description><link>https://paulofilipe.com/cp-algorithms/graph/01_bfs.html</link> <pubDate>Sun, 28 Jul 2024 21:47:47 +0000</pubDate><source url="https://paulofilipe.com/cp-algorithms/feed_rss_updated.xml">Algoritmos para Programação Competitiva</source><guid isPermaLink="true">https://paulofilipe.com/cp-algorithms/graph/01_bfs.html</guid> </item> </channel></rss>