Soluciones del Concurso AtCoder Beginner Contest 096
Problema A: El Día de Takahashi
Se proporcionan dos enteros m y d que representan el mes y el día. Se debe calcular cuántas fechas del año cumplen la condición de que el número del mes coincide con el número del día, desde el 1 de enero hasta la fecha indicada.
La lógica es simple: si el día es mayor que el mes, significa que ya pasaron todas l ...
Publicado el 8-6 22:50
Técnicas Avanzadas de Optimización y Algoritmia
Técnicas Avanzadas de Optimización y Algoritmia
Este artículo compila una colección de técnicas y trucos avanzados utilizados en programación competitiva, abarcando desde algoritmos poco comunes hasta optimizaciones esenciales para problemas complejos.
1. Enumeración de Subconjuntos en Subconjuntos
Al iterar sobre todos los subconjuntos de una ...
Publicado el 8-6 16:42
Uso de const en clases de C++
En C++, el modificador const desempeña un papel fundamental dentro de las clases, permitiendo definir miembros inmutables, funciones que no alteran el estado del objeto y objetos constantes. A continuación se describen sus usos más comunes con ejemplos prácticos.
1. Miembros de datos constantes
Un miembro de datos declarado como const debe inic ...
Publicado el 8-5 21:57
Fundamentos de Retroceso y Resolución de Problemas Combinatorios
Teoría del Algoritmo de Retroceso
El retroceso es una técnica de búsqueda exhaustiva que explora sistemáticamente soluciones candidatas. Su impelmentación se basa en recursión, donde cada decisión genera un nuevo estado que se evalúa hasta alcanzar una solución o agotar las posibilidades.
Casos de aplicación:
Problemas combinatorios: Selecció ...
Publicado el 8-5 16:52
Implementación de un Sistema de Gestión Escolar usando std::vector en C++
El uso de la biblioteca de plantillas estándar (STL) en C++ facilita la administración de colecciones de datos dinámicas. En este artículo, exploraremos cómo desarrollar un sistema de gestión de estudiantes utilizando el contenedor std::vector, permitiendo realizar operaciones fundamentales como la inserción, búsqueda, actualización y eliminaci ...
Publicado el 8-5 16:01
Algoritmo para calcular la diferencia de conjuntos grandes en el desafío Power8
Desafío de Algoritmos Power8
1.1 Planteamiento del problema
Problema:
Calcular la diferencia entre dos conjuntos de números.
Descripción detallada:
Dados dos archivos de texto que contienen conjuntos grandes de números (A y B), se debe determinar qué elementos están presentes en A pero no en B. El resultado debe almacenarse en un conjunto C, or ...
Publicado el 8-4 20:37
Formar el palíndromo más corto anteponiendo caracteres
Dada una cadena s, el objetivo es enteponer el menor número posible de caracteres para que el resultado sea un palíndromo. La clave está en hallar el prefijo palindrómico más largo de s: si ese prefijo tiene longitud L, basta con tomar el resto s[L…n-1], invertirlo y colocarlo al principio.
Solución con la función prefijo (estilo KMP)
Sea rev l ...
Publicado el 8-4 05:35
Funciones y Clases en C++
Recopilación - C/C++(13) 1.Expresiones Lambda07-02 2.Partición y manejo de memoria en C/C++06-13 3.Punteros inteligentes06-14 4.Análisis de punteros complejos en C: regla de derecha a izquierda06-14 5.Cadenas en C/C++06-14 6.Modificadores static, const y extern para variables en C++06-15 7. Funciones y Clases en C++ 06-16 8.Plantillas en C++06- ...
Publicado el 8-3 03:19
Introducción a Fast DDS: Desarrollo de una Aplicación de Publicación y Suscripción en C++
Conceptos Fundamentales de DDS y RTPS
DDS (Data Distribution Service) es un estándar middleware para sistemas distribuidos basado en datos, diseñado para permitir la comunicación eficiente entre aplicaciones distribuidas. Opera bajo el modelo DCPS (Data-Centric Publish-Subscribe), donde los componentes se comunican mediante temas (topics) sin n ...
Publicado el 8-3 01:12
Implementación de Árboles de Fenwick para Modificaciones y Consultas de Rango
El Árbol Binario Indexado (BIT), también conocido como Árbol de Fenwick, es una estructura de datos eficiente para manejar sumas de prefijos y actualizaciones puntuales. En comparación con un Árbol de Segmentos (Segment Tree), el BIT consume menos memoria y presenta una implementación más concisa, aunque tradicionalmente está limitado a operaci ...
Publicado el 8-2 16:00