Some Qualquer Intervalo com Subtração
Responda a range[l..r] em tempo constante.
Some Qualquer Intervalo com Subtração é uma aula grátis de Competitive Programming Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Competitive Programming Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Competitive Programming Academy inclui 4 aulas no total.
O Verdadeiro Benefício
Construir o vetor de somas prefixadas foi apenas a preparação. Agora vem a parte mágica: responder a qualquer soma de intervalo com uma única subtração. ⚡
A Ideia Principal
Uma soma de intervalo é apenas um total grande menos um menor. Subtrair dois valores de soma prefixada cancela de forma organizada tudo que está fora do seu intervalo.
A fórmula
Para somar os elementos de l a r, subtraia prefix[l] de prefix[r + 1]. Essa única fórmula funciona para qualquer intervalo.
range_sum = prefix[r + 1] - prefix[l]Por que funciona
prefix[r + 1] contém tudo até r, e prefix[l] contém tudo antes de l. A diferença deixa exatamente o trecho do meio.
Um exemplo resolvido
Para [3, 1, 4], o prefixo é [0, 3, 4, 8]. Para somar os índices de 1 a 2, faça 8 menos 3, o que dá 5. Isso corresponde a 1 mais 4.
Consultas em tempo constante
Cada consulta é apenas uma subtração, então é executada em O(1). Mil consultas têm o mesmo custo por consulta que uma única.
Cuidado com o deslocamento de um
O deslize mais comum está no índice do limite superior. Com um zero inicial, você sempre usa prefix[r + 1], não prefix[r]. Verifique esse limite.
Inclusivo versus exclusivo
Decida logo no início se r está incluído. Esta fórmula trata o intervalo como inclusivo em l e r, que é o que a maioria dos problemas de competições espera.
Coloque em uma função
Uma pequena função auxiliar mantém sua lógica legível e seus índices em um só lugar. Use esta função auxiliar em vez de inserir a matemática diretamente.
def query(l, r):
return prefix[r + 1] - prefix[l]Trate o vetor inteiro
Para somar o vetor inteiro, use l igual a 0 e r igual a n menos 1. A fórmula fornece prefix[n], o total geral.
Onde isso é especialmente útil
Sempre que um problema fizer muitas perguntas de soma de intervalos em um vetor fixo, as somas de prefixos transformam um laço O(n) por consulta em respostas instantâneas.
Verificação rápida
Você quer a soma dos índices de l a r, inclusive.
Recapitulação
Agora você pode responder a qualquer soma de intervalo em O(1) com prefix[r + 1] menos prefix[l]. Tenha cuidado com o deslocamento causado pelo zero inicial para evitar erros. ✅
Perguntas Frequentes
A aula “Some Qualquer Intervalo com Subtração” é grátis?
Sim — o texto completo de “Some Qualquer Intervalo com Subtração” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Competitive Programming Academy, atualize para CoddyKit PRO. O curso de Competitive Programming Academy inclui 4 aulas no total.
O que vou aprender em “Some Qualquer Intervalo com Subtração”?
Responda a range[l..r] em tempo constante. Você pratica Competitive Programming Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Competitive Programming Academy?
Nenhuma experiência prévia é necessária. Competitive Programming Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Some Qualquer Intervalo com Subtração”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Competitive Programming Academy?
Sim. Cada aula de Competitive Programming Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Crie um Array de Somas de Prefixos
- Some Qualquer Intervalo com Subtração
- Conte Subarrays com uma Soma-Alvo
- Arrays de Diferenças para Atualizações de Intervalos