Conteúdo da Disciplina
Abaixo, o conteúdo da disciplina organizado por módulos de estudo.
Apresentação e Contexto
- Maratona de Programação e Juízes Automáticos
- Classes de Problemas
- Conteúdo Preparatório (Revisão)
Módulo 1: Fundamentos
- Análise de Complexidade
- Busca Binária
- Ordenação (MergeSort)
- Recorrências e Teorema Mestre
Módulo 2: Paradigmas de Resolução
Recursividade e Divisão e Conquista - Recursividade - Divisão e Conquista - Contagem de Inversões
Gulosos e Backtracking - Algoritmos Gulosos - Backtracking
Programação Dinâmica - Introdução à PD - O Problema da Mochila (Knapsack) - Problema do Troco - Maior Subsequência Crescente (LIS) - Maior Sequência Comum (LCS) - Soma Máxima em Intervalo - DP em Árvores
Módulo 3: Matemática Computacional
- Teoria dos Números
- Combinatória e Probabilidade
Módulo 4: Grafos
- Introdução e Travessia (BFS/DFS)
- Caminhos Mínimos
- Árvores Geradoras Mínimas (AGM)
- Fluxo em Redes
Módulo 5: Estruturas de Dados Avançadas
- Árvores Segmentadas (SegTrees)
Módulo 6: Geometria Computacional
- Conceitos Básicos
- Algoritmos Geométricos
Módulo 7: Tópicos Extras
- Processamento de Strings