Este sitio servirá para apoyo al curso de programación competitiva de la URJC 2021 que se llevará a cabo desde el 26 de febrero de 2021 hasta el 14 de mayo de 2021
Bloque 1 - Teoría (26-02)
Bloque 2 - Teoría (05-03)
Bloque 1 y 2 - Práctica (12-03)
Bloque 3 - Teoría (26-03)
- Diapositivas
- Grabación de la sesión
- Algoritmos de Ordenamiento
- Bubble Sort / Selection Sort
- Quicksort
- Mergesort
- Otro tipo de algoritmos de ordenamiento y búsquedas
- Algoritmos Voraces
- Búsqueda Binaria
- Búsqueda Ternaria
Seminario 1 - Estructuras de Datos Avanzadas (26-03)
Leonardo Santella, finalista mundial ICPC realizó el seminario con el siguiente índice.
Fenwick Tree/Binary Indexed Tree (BIT)
- Range Sum* query/update
- O(NlogN)
- LSB(X)/LogN iterations max. Las operaciones bitwise son más rápidas. Usar un array para representar el árbol. ¿Por qué se llama árbol?
- Aplicaciones en el mundo real
- Inversión counting
- ¿Este algoritmo no resuelve el problema de RMQ? ¿Se puede usar lazy propagation?
- Ejercicios recomendados
Segment Tree
- RMax/MinQ, RSQ
- O(NlogN) update/query
- Patrón de recursión similar al mergesort. Lazy propagation. Persistentency
- Aplicaciones en el mundo real
- Variantes como Lazy Propagation Segment Tree, Persistent Segment Tree
- Ejercicios recomendados
Bloque 3 - Práctica (09-04)
Bloque 4 - Teoría (16-04)
- Diapositivas
- Grabación de la sesión
- Grafos I
- Representación
- Recorridos (BFS, DFS)
- Caminos y ciclos eulerianos y hamiltonianos
- Ordenamiento Topológico
- Puntos de articulación
Bloque 4 - Práctica (23-04 y 24-04)
Bloque 5 - Teoría (30-04)
Bloque 5 - Práctica (07-05)
Seminario 2 - Estructuras de Datos Avanzadas - Trie y Suffix Array (12-05)
Leonardo Santella, finalista mundial ICPC realizó el seminario con el siguiente índice.
Trie
- Idea general del algoritmo
- ¿Qué problema resuelve?
- Análisis de Complejidad en tiempo
- Observaciones
- Pseudocódigo del algoritmo
- Ejemplo
- Notas adicionales
- Ejercicios recomendados
- Preguntas/Dudas
Suffix Array
- Idea general del algoritmo
- Suffix Trie / Suffix Tree
- Que problema resuelve?
- Análisis de Complejidad en tiempo
- Observaciones
- Pseudocódigo del algoritmo
- Ejemplo
- Notas adicionales
- Ejercicios recomendados
- Preguntas/Dudas
Bloque 6 - Teoría (14-05)
Bloque 6 - Práctica (21-05)