Técnicas de Programación: Orden Topológico y Caché LRU en Soluciones de LeetCode
Casa Robada III (Programación Dinámica en Árbol)
En este problema, se utiliza programación dinámica en un árbol para calcular la máxima cantidad que se puede robar sin robar nodos adyacentes. La solución implica un recorrido DFS que devuelve dos valores: el máximo sin robar el nodo actual y el máximo robándolo.
class ArbolDP {
public int ...
Publicado el 6-10 20:31
Resolviendo el Problema de la Recolección de Hierbas con Programación Dinámica (Mochila 0/1)
El problema de la recolección de hierbas es un desafío algorítmico clásico que se puede modelar como una variante del problema de la Mochila 0/1. Se nos presenta un límite de tiempo total y una lista de diferentes hierbas. Cada hierba tiene un tiempo específico que se tarda en recolectar y un valor asociado. El objetivo es determinar la combina ...
Publicado el 6-10 19:56
Soluciones de AGC004: Problemas A-F Explicados
A - Divide un Cuboide
Para cumplir la condición, el cuboide debe cortarse paralelamente a una de sus caras. Probamso cada cara posible: si la arista perpendicular a la cara es de longitud c y la cara mide a × b, entonces podemos cortar justo por la mitad cuando c es par, logrando diferencia 0. Si c es impar, el mejor corte deja una diferencia d ...
Publicado el 6-9 23:07
Variantes Especiales del Problema de la Mochila
El fracaso no es vergonzoso, no aprender de él sí lo es.
En este artículo se exploran dos variantes especiales del problema de la mochila: la búsqueda de soluciones concretas (rutas de transferencia) y el cálculo del número de soluciones óptimas.
Antes de profundizar, es fundamental comprender dos métodos de inicialización para los arrays de pr ...
Publicado el 6-9 03:26
Análisis técnico y retrospectiva de las competencias CSP y NOIP 2021
El proceso de preparación para las olimpiadas de informática (CSP-S y NOIP) requiere no solo un dominio de algoritmos avanzados, sino también una gestión psicológica y estratégica del tiempo de competencia. A continuación, se detalla el análisis técnico de los problemas enfrentados, las optimizaciones implementadas y las lecciones aprendidas du ...
Publicado el 6-7 04:52
Fundamentos y Aplicación de la Exponenciación Rápida de Matrices en C++
Propiedades Esenciales de las Matrices
La exponenciación rápida de matrices es una técnica fundamental en la optimización de algoritmos, especialmente en problemas de programación dinámica y sucesiones lineales. Para comprender su funcionamiento, es necesario revisar las propiedades algebraicas que la sustentan.
Matriz Identidad (I): Es una ma ...
Publicado el 6-5 19:32
Selección Óptima de Intervalos No Solapados Usando un Enfoque Voraz
Dado un conjunto de n intervalos, cada uno definido por un punto de inicio y un punto de fin ([inicio_i, fin_i]), el objetivo es seleccionar la máxima cantidad de intervalos de tal forma que ningún par de intrevalos seleccionados se solape. Se considera que los intervalos son solapados si sus puntos finales coinciden.
Por ejemplo, si tenemos lo ...
Publicado el 6-3 21:13