Entrenamiento y estrategia de un equipo II
El entrenamiento en ICPC es super simple:
- Hay que hacer muchos problemas para mejorar individualmente.
- Hay que hacer muchos simulacros para mejorar en equipo.
A partir de ahi, hay que analizar los éxitos y fracasos para mejorar.
Mas adelante vamos a entrar más en detalle. Por ahora, les dejo una receta para seguir.
- Simular tan seguido como puedan (una vez por semana es buenísimo)
- Durante las pruebas:
- Lean todos los problemas al principio de la prueba y charlen quien va a intentar cual.
- Intenten los más fáciles primero.
- Anoten en una tablita los problemas que ya estan leidos/alguien está pensando/ya están resueltos/etc
- Justo después de la prueba:
- Anoten en una planilla los problemas que salieron y el link a la prueba.
- En los dias posteriores a la prueba:
- Hagan upsolving de los problemas más fáciles que no salieron.
- Lean la solución de los problemas más dificiles que no salieron, al menos por arriba.
Algunos posibles fracasos en simulacros:
- No leer algun problema, y después de la prueba ver que lo podríamos haber resuelto.
- Tener dos miembros pensando el mismo problema sin saberlo.
- Que uno esté trabado resolviendo un problema que a otro le sale muy fácil.
- Que uno esté trabado resolviendo un problema que es muy difícil, y no hay chance de que salga.
- Intentar un solo problema en la última hora, cuando hacen falta dos para clasificar.
- Que no salga un problema muy parecido a uno que ya enfrentamos y no nos salió.
- Que consistentemente no nos salen problemas de un mismo tema.
Algunas soluciones directas a estos errores:
- Leer todos los problemas antes de las dos horas de la prueba
- Tener una tablita para ir anotando los problemas que ya estan leidos/alguien lo está pensando/ya están resueltos/etc
- Charlar los problemas durante la prueba para elegir quién va a intentar cual.
- Charlar para decirle al compañero que tiene que abandonar un problema.
- Charlar para decirle al compañero que tiene que pasar el problema que está intentando a otro.
- Tener un objetivo fijado antes de la prueba. Por ejemplo:
- Clasificar a la proxima ronda
- Salir top 20
- Meter 5 problemas
- Divertirse
- Charlar entre nosotros para tomar decisiones
- Hacer upsolving (resolver los problemas que no nos salieron en la prueba)
- Anotar los temas de los problemas que encaramos y no salieron, para practicarlos en otro momento.
Para entrenar, está bueno ir registrando los simulacros que se hacen, y anotar los problemas que se han resuelto y los que no. Aparte, está bueno anotar los temas de los dos problemas más fáciles que no nos salieron.
Al hacer upsolving, yo recomiendo:
- Para los problemas que nos pueden llegar a salir, pensarlos bastante tiempo.
- Para los problemas que no nos pueden llegar a salir, leer la solución y entenderla.
-
Una regla general es que los dos problemas más fáciles que no nos salieron en la prueba, son los que nos pueden llegar a salir.
Por ejemplo, si metieron H y J en el regional 2025, apunten a F y K para el upsolving.
Estrategia de mi equipo
La estrategia de mi equipo era:
- Al principio de la prueba, escribir el template y leer todos los problemas.
- Si alguien identifica un problema super fácil, lo codea incluso sin terminar de leer el resto de problemas.
- Una vez leídos todos los problemas, se cuentan los enunciados y se asigna quién va a intentar cada problema.
- Si uno es experto en un tema, y justo hay un problema que es de ese tema
- Si uno ya resolvió un problema similar
- Intentamos resolver los más fáciles primero.
- Durante la primera media hora, revisamos la tabla para ver si hay alguno bien fácil que no resolvimos.
- Escribir código en papel antes de ocupar la computadora. (al menos pseudocódigo)
- Si alguien está programando, no lo interrumpimos, para que no ocupe más tiempo la computadora.
- Cuando alguien va a tomar la computadora, predice cuánto tiempo va a tomar. (Si son 40 minutos, es aceptable sacarlo 5 minutos para codear otro problema)
- No debuggear en la computadora, sino mandar a imprimir el código en papel.
- Después de hacer un envío, siempre se envía el código a imprimir, por las dudas.
- Cada hora, hablamos para ver cómo estamos y tomar decisiones.
- Hay que abandonar alguno de los problemas?
- Será mejor que alguien le pase el problema que está intentando a otro?
- Qué problema es el que sigue? (volver a revisar la tabla)
- Alguno necesita ayuda?
- Cuando queda una hora, hablamos para decidir si intentamos un problema, dos o tres. Elegimos según lo que haga falta para clasificar.
Esta estrategia no es perfecta, y hay que ajustarla a cada equipo y cada prueba.
Y para entrenar, nos enfocabamos mucho en hacer upsolving. Teniamos un google sheet para esto.
| A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
nombre |
link |
tema 1 |
tema 2 |
| S |
S |
|
|
S |
|
|
S |
O |
S |
|
U |
X |
X |
X |
Regional 2025 |
codeforces.com/gym/… |
DP |
Geometria |
- S = resuelto
- O = upsolved
- U = para upsolving
- X = no existe
Tema 1 y tema 2 son los temas de los dos problemas más fáciles que no nos salieron en la prueba.
Un par de veces por semana haciamos upsolving individualmente. Personalmente, yo era de intentar el problema y no leer la solución hasta que no lo habia intentado durante muchas horas.