0Pricing
Competitive Programming Academy · Lección

Sume cualquier rango mediante resta

Responda range[l..r] en tiempo constante

Sume cualquier rango mediante resta es una lección gratuita de Competitive Programming Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Competitive Programming Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Competitive Programming Academy incluye 4 lecciones en total.

La verdadera ventaja

Construir el arreglo de sumas prefijas era la preparación. Ahora llega la magia: responder cualquier suma de rango con una sola resta. ⚡

La idea fundamental

Una suma de rango es simplemente un total grande menos otro más pequeño. Restar dos valores de sumas prefijas cancela limpiamente todo lo que queda fuera del rango.

La fórmula

Para sumar los elementos de l a r, reste prefix[l] de prefix[r + 1]. Esta única fórmula funciona para cualquier intervalo.

range_sum = prefix[r + 1] - prefix[l]

Por qué funciona

prefix[r + 1] contiene todo hasta r, y prefix[l] contiene todo lo anterior a l. La diferencia deja exactamente el segmento intermedio.

Un ejemplo resuelto

Para [3, 1, 4], el prefijo es [0, 3, 4, 8]. Para sumar los índices del 1 al 2, reste 3 de 8, lo que da 5. Eso coincide con 1 más 4.

Consultas en tiempo constante

Cada consulta consiste en una sola resta, por lo que se ejecuta en O(1). Mil consultas cuestan lo mismo por consulta que una sola.

Cuidado con el desfase de uno

El error más común está en el índice del extremo superior. Con un cero inicial, siempre se usa prefix[r + 1], no prefix[r]. Proteja ese límite.

Inclusivo frente a exclusivo

Decida desde el principio si se incluye r. Esta fórmula considera el intervalo inclusivo tanto para l como para r, que es lo que esperan la mayoría de los problemas de programación competitiva.

Envuélvalo en una función

Una pequeña función auxiliar mantiene legible la lógica y concentra los índices en un solo lugar. Apóyese en esta función auxiliar en lugar de insertar las operaciones matemáticas directamente.

def query(l, r):
    return prefix[r + 1] - prefix[l]

Procese todo el arreglo

Para sumar todo el arreglo, establezca l en 0 y r en n menos 1. La fórmula da prefix[n], el total general.

Dónde resulta especialmente útil

Siempre que un problema plantee muchas consultas de suma de intervalos sobre un arreglo fijo, las sumas de prefijos convierten un bucle de O(n) por consulta en respuestas instantáneas.

Comprobación rápida

Necesita la suma de los índices de l a r, ambos inclusive.

Resumen

Ahora puede responder cualquier suma de intervalo en O(1) con prefix[r + 1] menos prefix[l]. Tenga en cuenta el desfase del cero inicial y evitará errores. ✅

Preguntas frecuentes

¿La lección «Sume cualquier rango mediante resta» es gratis?

Sí — el texto completo de «Sume cualquier rango mediante resta» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Competitive Programming Academy, actualiza a CoddyKit PRO. El curso de Competitive Programming Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Sume cualquier rango mediante resta»?

Responda range[l..r] en tiempo constante Practicas Competitive Programming Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Competitive Programming Academy?

No se requiere experiencia previa. Competitive Programming Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Sume cualquier rango mediante resta»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Competitive Programming Academy?

Sí. Cada lección de Competitive Programming Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Construya un array de sumas prefijas
  2. Sume cualquier rango mediante resta
  3. Cuente subarrays con una suma objetivo
  4. Arrays de diferencias para actualizaciones de rangos
← Volver a Competitive Programming Academy