XXVI Olimpíada Brasileira de Informática

A seletiva para as olimpíadas internacionais usa como referência a Ementa da Olimpíada Internacional de Informática.

Competidores devem utilizar a linguagem C++ e estar familiarizados com todos os conteúdos da ementa da Modalidade Programação, assim como os conteúdos adicionais listados abaixo.

1. Fundamentos de Matemática

Conceitos de Matemática Discreta

  • Probabilidade discreta

Conceitos de Grafos

  • Grafos planares: fórmula de Euler

2. Fundamentos de Computação

Informática Básica

  • Interfaces de linha de comando

Programação

  • Bitsets
  • Geradores de números aleatórios da biblioteca padrão
  • Redirecionamento de entrada/saída para arquivos
  • Programação orientada a eventos: algumas tarefas (“interativas” / “comunicativas”) podem envolver interação com um ambiente reativo. O competidor deve ser capaz de:
    • Utilizar bibliotecas específicas da competição de acordo com instruções fornecidas durante a prova
    • Implementar a interação com o ambiente fornecido

3. Algoritmos e Estruturas de Dados

Estratégias de Algoritmos

  • Heurísticas
  • Algoritmos randomizados

Estruturas de Dados

  • Decomposição avançada:
    • Decomposição de estruturas dinâmicas com rebalanceamento
    • Algoritmo de Mo
  • Árvore de Segmentos 1D Dinâmica
  • Estruturas persistentes (por exemplo, Árvore de Segmentos Persistente)
  • Árvore de Busca Binária Balanceada (Treap, Splay Tree ou equivalente) 1D
  • Técnica de Divisão-e-Conquista para responder consultas em vetor estático
  • Union-Find Semi-persistente, Union-Find com Rollback
  • Trie de Bits

Algoritmos de Ordenação e Busca

  • Quicksort e Quickselect

Algoritmos de Matemática

  • Operações simples (adição, subtração e multiplicação) em inteiros de tamanho arbitrário (Big Num)

Algoritmos de Programação Dinâmica

  • Programação dinâmica em inteiros de tamanho arbitrário (Digit DP)
  • Otimizações avançadas de programação dinâmica:
    • Truque do Fecho Convexo (CHT)
    • Otimização por Divisão-e-Conquista
    • Otimização de Knuth

Algoritmos em Grafos

  • 2-SAT (com componentes fortemente conexas)
  • Máximo conjunto de arestas independentes em um grafo bipartido (Bipartite Matching) em O(VE)
  • Biconectividade em grafos não-direcionados (Bridge Tree, Block-Cut Tree)

Algoritmos em Árvores

  • Decomposição em Centroides
  • Decomposição Heavy-Light

Algoritmos de Geometria

  • Checar se um ponto está em um polígono convexo em O(log N)

Promoção
logo sbc
Patrocínio
Apoio
Coordenação