∣V∣+∣E∣ (Gráfico)
Base de informação sobre C++, maratona, estruturas de dados e algoritmos.
- Estimando complexidade de tempo do algoritmo com o tamanho de n
- Leitura de linhas, strings e caracteres e seus problemas
- Busca binária é a solução pra tudo
- Distâncias euclidianas, chebyshevianas, manhattanas
- GCD (maior divisor comum) e LCM (mínimo múltiplo comum) usando GCC
- Fazendo comparações com números de base 10 e 2
- Contagem de bits usando GCC
- Otimizando, reduzindo estado, xunxando programação dinâmica
- Usando timestamps para zerar/inicializar matrizes em O(1) entre casos de teste
- Compactando tuplas (pontos 2D, 3D)
- Tamanho de inteiros
- Ponto flutuante e problemas com arquiteturas x86 e máquinas 32 bits
- Função clamp
- Iterando sobre 4-vizinhanças e 8-vizinhanças
- Árvore binária com rank usando GCC
- Programando sem um compilador (IDEs na web)
- Usando a STL para imprimir um vetor de números usando uma linha de código
class
vs struct
em C++
- Treinando usando o Codeforces (tags, nível dos problemas)
- Busca binária em lista em Python
- Multiset/Bag ordenado por frequência como o Counter do Python em C++
- Entrada e saída rápida
- Argumentos de troca (exchange arguments)
- Propriedades do módulo (invariantes)
- Operações com bit e máscaras de bit
- Extensões do crivo de Erastótenes
- Propriedades do ou exclusivo
- Usando o uDebug
- Teto de divisão de inteiros
- Propriedades do log para números um pouco grandes (e transformada de Fourier?)
- Ponteiro é só um número, e um número muito grande por sinal
- Testando usando cat e diff
- Verificando o tempo do seu código usando time
- Como digitar mais rápido
- Função sort
- Decomposição em raíz quadrada
- fill, clear para limpar matrizes/vetores entre casos de teste
- Flags de otimização e o impacto no seu código
- Teoria dos números: Função Totiente de Euler
- Lambdas, closures e captura de referência
for
de intervalo (usando iteradores)
- Classes e structs, definindo operações customizadas
- Usando
auto
- Problemas NP-completos
- rbegin e rend
- Centro, centróide de grafos
- Ler até o fim do arquivo
- Dá pra fazer tudo com DFS
- Descobrindo casos de teste do Codeforces
- Propriedades de estrutura de dados (CP-Algorithms)
- Programação competitiva vs. programação para entrevistas
- Usando valgrind e cachegrind para descobrir número de instruções e acessos de memória (otimizando constantes)
- Rating e divisões do Codeforces
- Vim para maratona
- using namespace std e outras "más" práticas de programação
- Respostas de juiz possíveis
- Overflow e implicit casting do C++
- Inversão de operações lógicas e/ou
- Funções auxiliares do C++ max, min, abs
- Set, map, multimap, list, multiset, unordered_map, unordered_set (porque evitar o uso de multimap, multiset, list) (porque "acesso constante" é um pouco complicado)
- Queue, deque, stack, priority queue
- Loucuras com pairs e por que usá-los
- Arrays: Propriedades de armazenamento e equalidade
- Valores mágicos para infinito e porquê (0x3f3f3f, 987654321)
- Vectors: Complexidade de push_back, insert, erase, reverse
- Invertendo, revirando, bagunçando sem alterar o array original
- Implementações de Lazy Segment Tree
- Guardando pairs para lembrar dos índices corretos
- Decomposição pesado-leve
- Convertendo imagem para código
- Imprimindo números em ponto flutuante
- Nomenclatura