Este repositório é uma coleção pessoal de algoritmos, estruturas de dados e técnicas de programação, organizados por categoria. O principal objetivo é servir como um material de estudo e consulta rápida para a prática de programação competitiva e a resolução de problemas complexos.
Cada pasta contém implementações de referência sobre um tópico específico, abrangendo desde conceitos fundamentais até algoritmos mais avançados.
O conteúdo está organizado da seguinte forma:
Algoritmos Dinamicos
: Soluções que utilizam a técnica de Programação Dinâmica (PD) para resolver problemas de otimização.Algoritmos Gulosos
: Implementações de algoritmos gulosos (Greedy), que fazem escolhas localmente ótimas na esperança de encontrar uma solução global ótima.Arquivos
: Exemplos de código para manipulação, leitura e escrita de arquivos.Bibliotecas C++
: Funções utilitárias, macros e includes (#include
) frequentemente usados em competições.Combinatoria
: Algoritmos relacionados à análise combinatória, como permutações, combinações e outros.Competitive Programming 4
: Códigos e anotações baseados nos problemas e conceitos do livro "Competitive Programming 4".Diminuir-Conquistar
: Algoritmos que seguem a abordagem de "Diminuir para Conquistar", reduzindo o tamanho do problema a cada passo.Dividir-Conquistar
: Implementações da técnica "Dividir para Conquistar", como Merge Sort e Closest-Pair.Entradas Saidas e Prints
: Templates e códigos otimizados para leitura (input) e escrita (output) de dados.Estruturas de Dados Sem Lib
: Implementações de estruturas de dados do zero, sem o uso de bibliotecas padrão.Grafos
: Um conjunto de algoritmos clássicos para grafos, incluindo buscas (BFS, DFS), caminhos mínimos (Dijkstra, Bellman-Ford) e árvores geradoras mínimas (Kruskal, Prim).Ordenacao
: Diferentes algoritmos de ordenação (Sorting), como Bubble Sort, Merge Sort, Quick Sort, etc.Poligonos e Geometria
: Algoritmos de geometria computacional para lidar com pontos, retas e polígonos.Strings
: Algoritmos para manipulação e busca em strings.Teoria dos Numeros
: Funções e algoritmos relacionados à Teoria dos Números, como MDC, teste de primalidade, e exponenciação modular.Union Find
: Implementação da estrutura de dados Union-Find (ou Disjoint Set Union - DSU), útil para problemas de conectividade.
Os códigos neste repositório são destinados a fins educacionais. Sinta-se à vontade para navegar pelas pastas, estudar as implementações e usá-las como referência para resolver seus próprios problemas.