Skip to Content

Estrategia de contest

La mejor estrategia de contest es entrar sabiendo todo. Sin embargo, muy pocas personas pueden hacerlo; véase Benq  o tmw  (es broma).

Una vez que arranca el cronómetro, ya no se puede estudiar más, y administrar el tiempo con inteligencia es lo mejor que se puede hacer para maximizar el puntaje.

Estrategia

La estrategia es flexible y todo consejo hay que tomarlo con reservas. La estrategia debería ser personal, específica para cada uno.

El comienzo de un contest

Hay que leer todos los problemas primero (no abandonar ninguno de antemano). En general, conviene pensar bastante antes de escribir cualquier código. Según la dificultad del contest, se puede pasar desde 5 minutos hasta 2 horas con lápiz y papel antes de tocar el teclado.

Las dificultades de los problemas pueden estar desordenadas, así que conviene tenerlo en cuenta antes de concentrarse 3 horas en el problema 1 sin avanzar. Hay que dedicar un buen rato a pensar cada problema antes de decidir en cuáles enfocarse y cuáles dejar de lado.

Asignación de tiempo

Es la peor sensación del mundo invertir un par de horas en un problema y recién entonces darse cuenta de que otro habría sido fácil de sacar; se puede evitar fácilmente esa situación con una asignación de tiempo adecuada. Hay que usar el propio criterio para decidir qué es probable que se pueda resolver y cuándo conviene abandonar. En general, no hay que pasar “demasiado tiempo” en un solo problema, y conviene alejarse de problemas que parezcan evaluar algo que no se conoce bien.

Cuando se ve una solución

Si al leer un problema se obtiene de inmediato la solución, puede ser buena idea implementarla rápido y sacarla del medio.

También puede ser buena idea avanzar un poco en otros problemas antes de implementar el que ya se sabe hacer. Al volver y empezar a implementar, se puede verificar que la solución sigue teniendo sentido y, mientras se escribe código, siguen dando vueltas ideas de los otros problemas.

Cuando hay puntajes parciales

Si se pueden obtener puntos resolviendo un problema de forma parcial (p. ej. en USACO), conviene tener esas subtareas en mente. Hay dos enfoques principales para resolver problemas de forma parcial.

  • Usar la mayor parte del tiempo para pensar el problema completo y luego implementar los parciales (partials) si no se encontró la solución y el tiempo está por acabarse.
    • Si se encuentra la solución completa, hay que estar seguro de que es correcta, no sea que se pierda una hora implementando algo completamente equivocado.
    • ¡Hay que juzgar con cuidado la dificultad de los parciales! Puede llevar desde 30 segundos hasta 30 minutos implementar un parcial, o tal vez un parcial no era tan trivial como parecía.
  • Ir subiendo desde los parciales, implementando el más fácil y después yendo al más difícil. Las subtareas parciales pueden ayudar a pensar la solución completa y también ayudan a no perder el rumbo.

Comentarios personales

Nathan Chen

En el nivel Platino, primero leo todo y después suelo pasar la primera hora pensando los dos problemas más fáciles (el más difícil suele ser MUY difícil). Sigo pensando el resto de la ventana del contest y los implemento si creo que tengo la solución. También soy de los que dejan los parciales para el final, cuando el tiempo se acaba y todavía no tengo nada.

Benjamin Qi

Hacer los parciales que se puedan; ojalá para entonces ya se haya encontrado la solución completa. :D