Skip to content

🧠 Estratégias & Dicas

🎯 Estratégias

🎥 Vídeo — Estratégias para Concursos de Programação Competitiva (ICPC-style):
Assista no Dropbox


🧩 Dicas e Problemas Frequentes

🐢 Meu código parece ter complexidade aceitável, mas recebo TLE

  • Verifique se está passando arrays por referência nas funções. Passar por valor cria uma cópia (O(n)), o que pode aumentar drasticamente a complexidade real.
  • Confirme a complexidade das operações nas estruturas de dados:
  • unordered_set: remoção pode ser O(n) no pior caso.
  • map / set: geralmente O(log n) graças a árvores balanceadas.

🧠 Como escolher a estrutura de dados ideal?

  • Compare fatores constantes:
  • Fenwick Tree costuma ser mais rápida que Segment Tree, embora menos flexível.
  • Se ambas forem válidas, prefira a que tem desempenho prático melhor (como Fenwick Tree).

❌ Todos os testes passam, mas recebo WA

  • Cheque os limites dos tipos de dados:
  • Se estiver somando valores grandes (ex: até 10⁹), evite int — use long long.
  • Overflows silenciosos são uma causa comum de erro em juízes automáticos.

💡 Estas dicas são baseadas em erros comuns de participantes em concursos e plataformas como Codeforces, AtCoder e outros.