Tema 6: Strings 31

Vicente I. Villarroel 4 Nov 202404/11/24 a las 08:19 hrs.2024-11-04 08:19:04
Materia

Hola,

Comenzamos nuestro último tópico que es strings. Los algoritmos de strings son muy importantes y tienen aplicaciones desde procesamiento de texto, compresión, herramientas de búsqueda hasta la bioinformática donde permiten analizar secuencias de ADN (que al final son strings muy largos con un alfabeto muy pequeño).

En particular veremos dos algoritmos: Rolling Hashing y Prefix Function con KMP. Éstos se enfocan más en lo que sería comparar y buscar en strings de forma eficiente.

El material de estudio oficial es:
- El video: https://www.youtube.com/watch?v=aCDwFQoAkdQ
- El código disponible en material docente.

Además como lectura complementaria les recomendamos cp-algorithms (en inglés): - Artículo de string hashing: https://cp-algorithms.com/string/string-hashing.html
- Artículo de prefix function: https://cp-algorithms.com/string/prefix-function.html

Éxito en lo que queda del semestre!

Tema 4: Programación Dinámica 23

Dmitri Ramírez 23 Sep 202423/09/24 a las 11:12 hrs.2024-09-23 11:12:23
Materia

Hola!

Ahora empezaremos con programación dinámica. Este es un paradigma de resolución que nos permite resolver principalmente problemas de optimización y conteo.

El material de estudio oficial es:

- El artículo del apunte: uchile.progcomp.cl/ ... ogramacion_dinamica/
- El video de semestres pasados: www.youtube.com/watch?v=6sisikSUs4U

Además si entienden inglés les recomendamos los videos de programación dinámica de Errichto, en los cuales está basada la clase anterior: www.youtube.com/ ... UdmhFk19LaPgrfmAGQfo

Saludos!

Tema 3: Búsqueda Binaria 38

Blaz Korecic 30 Ago 202430/08/24 a las 17:40 hrs.2024-08-30 17:40:30
Materia

Hola!

El próximo tema es búsqueda binaria. Aprenderemos todos los detalles de implementación, y sus aplicaciones que van mucho más allá que solo buscar un número en un arreglo.

El material de estudio oficial es el artículo del apunte y el siguiente video:



Además les comento que estamos preparando video más visual y conciso que subiremos pronto. Ojalá mañana.

Saludos!

Tema 2: Librería Estándar 70

Dmitri Ramírez 16 Ago 202416/08/24 a las 09:10 hrs.2024-08-16 09:10:16
Materia

Hola!

El tema de estas dos semanas será la librería estándar de C++. En ella aprenderán a usar diferentes estructuras, tales como son set, map, stack y queue; por otra parte se introduce la función de ordenamiento de C++, sort. La idea es que se familiaricen con cada uno de estos para así poder utilizarlos durante la resolución de problemas cada vez más complejos. Para ello les recomendamos revisar la sección de librería estándar del apunte, como también el siguiente video:



Recuerden aprovechar el foro, las clases y el discord para resolver sus dudas,

Nos vemos!

Tema 1: Introducción a C++ 67

Blaz Korecic 4 Ago 202404/08/24 a las 16:12 hrs.2024-08-04 16:12:04
Materia

Hola!

A medida que vayamos avanzando iremos poniendo los detalles de cada tema acá en novedades.

Esta primera semana la idea es que se familiaricen con C++ y resuelvan problemas que no requieren nada más que el uso de cosas básicas del lenguaje como input+output, iteraciones, arreglos, vectores, etc. También la idea es que se familiaricen con el juez online (Codeforces).

El objetivo del taller de este lunes es que logren instalar y usar un compilador para resolver su primer problema. Como no tendrán tiempo para ver el video igualmente haremos una mini clase en el taller, pero en para los próximos temas la idea es que vean los videos o estudien el apunte antes.

El material oficial para estudiar estos temas es el siguiente:

- Clase de un semestre anterior



- Capítulo de introducción del apunte. Este capítulo va bien en detalle sobre varias funcionalidades de C++. Les recomiendo fuertemente que lean el artículo sobre análisis de complejidad. Entender bien esto les ahorrará mucho tiempo a la hora de resolver problemas.

Funcionamiento del curso 128

Blaz Korecic 1 Ago 202401/08/24 a las 19:00 hrs.2024-08-01 19:00:01
Administrativo

¡Bienvenidos/as al Taller de Programación Competitiva 2024-2!

Temario

El temario de este semestre es el siguiente:
  • Semanas 1-2: Introducción a C++
  • Semanas 3-4: Librería Estándar
  • Semanas 5-6: Búsqueda Binaria
  • Semanas 7-8: Programación Dinámica
  • Semana 9: Competencia 1 (CC4006), libre para CC4002
  • Semanas 10-11: Segment Tree
  • Semanas 12-13: Strings
  • Semana 14: Competencia 2 (CC4006), libre para CC4002
  • Semana de exámenes: habrá una competencia recuperativa.

Clases

Tenemos cinco tópicos en el temario. Al inicio de cada tópico les subiremos videos y material que deben estudiar antes del taller semanal.

Taller

Una vez a la semana tendremos el taller que estará dividido en dos bloques. El primer bloque servirá para responder dudas de las clases y presentar ejemplos de resolución de problemas, mientras que el segundo bloque será práctico donde deben trabajar en los problemas de la semana.

Abriremos una votación para decidir un horario que convenga a la mayor cantidad de estudiantes. Como CC4006 tiene exigencia de resolver los problemas el mismo día, la votación solo estará disponible para estudiantes de CC4006.

Evaluaciones

Cada taller semanal consiste en cuatro problemas y tiene nota. Pueden resolver estos problemas en cualquier momento del día del taller sin descuento, o en cualquier momento de las dos semanas del tópico (hasta el viernes de la segunda semana) con un pequeño descuento por atraso.

taller.jpg

Cada problema resuelto sin atraso aporta 3 puntos a la nota y con atraso 2 puntos, entonces 2 problemas sin atraso dan un 7 mientras que 3 problemas con atraso también dan un 7. Un problema sin atraso y un problema con atraso dan un 6, y así.

Adicionalmente, CC4006 tiene tres evaluaciones grupales donde simularemos una competencia real de programación competitiva.

Diferencias entre CC4002 y CC4006

CC4002 actúa como una versión light del ramo, acorde a su carga de créditos.
  • En CC4002 no hay descuento por atraso, es decir, pueden resolver los problemas del taller en cualquier momento de las dos semanas del tópico.
  • CC4002 no tiene competencias.