Aquí hay algunos consejos, algunos de los cuales han sido extraídos de mis experiencias (buenas y malas) en mis cuatro regionales.
En primer lugar, si aún no has formado el equipo:
- Encuentre personas que sean buenas en programación competitiva y que trabajen bien con usted. Tener dos personas más inteligentes en su equipo no sirve de nada si sus egos son tan altos que no puede discutir un problema correctamente durante el concurso.
- A menos que su nombre sea Gennady Korotkevich, no tenga la impresión de que puede ganar los regionales solo. Un equipo con tres personas la mitad de buenas que usted, con toda probabilidad, vencerá a un equipo con usted y dos tontos.
- Trate de tener un miembro del equipo que, incluso si no son particularmente buenos para encontrar soluciones por sí mismos, puedan entender una solución que se les explicó y codificarla correctamente y muy rápido. La escritura lenta y la depuración de tiempo pueden marcar la diferencia de un problema o dos durante el concurso. No hay nada peor que ser capaz de resolver la solución pero no poder codificarla y hacer que sea aceptada.
Ahora que tienes el equipo:
- Practica mucho. Prepárate para el concurso en equipo. Resolver tres problemas solo en 75 minutos es completamente diferente de tres personas que intentan resolver diez problemas en cinco horas. Practiquen muchos concursos de práctica juntos para que sepan qué tan bien trabajan juntos y puedan determinar su división del trabajo correctamente.
- Intenta cubrir los temas de manera exhaustiva. Debe haber al menos un miembro en cada equipo que sea razonablemente bueno con cada tema. Confía en tus compañeros de equipo. Repase los problemas regionales pasados para ver qué temas deben enfatizarse más y trabaje en ellos.
- Prepara un cuaderno apropiado. Si tiene que pensar cómo implementar un algoritmo, siempre es mejor deshacerse de ese paso y simplemente escribir la biblioteca. Tener una implementación adicional en su computadora portátil nunca le hace daño a nadie, y probablemente tener una menos.
- Prepárese para las pequeñas diferencias que causará el sitio del concurso. Es posible que no tenga su IDE o teclado favorito o cosas así, y que se prepare para el sistema de concurso.
Durante el concurso:
- ¿Qué le preguntaría al presidente Obama si se le permitiera hacerle una pregunta antes de las elecciones de noviembre?
- ¿Qué le dirías a la Clase de 2012 en Ciencias si les estuvieras dando su discurso de graduación?
- ¿Qué pasaría si entrara a un banco para depositar $ 1 millón de dólares en efectivo? ¿La mayoría de los bancos tienen máquinas que cuentan?
- ¿Qué pasaría si un astronauta fuera golpeado por un ‘micrometeor’ mientras estaba en un EVA (actividad extravehicular)?
- ¿Cuál hubiera sido el resultado de Mahabharath si Draupadi se hubiera casado con Karna?
- Planifique de antemano cómo abordará el concurso y trabaje para el plan
- Observe el marcador para ver cuáles son los problemas que se están resolviendo. Si la mayoría de los equipos están resolviendo algo y usted piensa que es demasiado difícil, simplemente relájese y lea el problema cuidadosamente. Puede haber alguna restricción simplificadora que le falta
- No use el marcador para nada más. En particular, no se preocupe por su rango actual. En cualquier carrera, solo podrás correr a tu propio ritmo. Pánico y terminarás leyendo incorrectamente las declaraciones de problemas y haciendo errores absolutamente tontos en el código.
- Para la depuración, siga las pautas de Nadeem. Tienes tres cabezas, pero solo una computadora, ese es el recurso limitado.
- En ningún momento del concurso debe estar inactivo cualquier miembro del equipo. Si ha resuelto un problema en papel y está esperando tener acceso al teclado, no espere. Genere casos de prueba o pase al siguiente problema o simplemente ayude a su compañero de equipo a codificar / depurar / pensar.
- El mejor miembro de su equipo debería pensar más que codificar. Si hay alguien realmente bueno para encontrar soluciones, hacer que las codifiquen también podría ser una pérdida de capacidad intelectual. Si han encontrado una solución que comprendes completamente y no pareces avanzar en los problemas restantes, tal vez deberías codificarlos para que puedan tratar de resolver los otros problemas. Aquí es donde ayuda tener un codificador designado.
- Si parece que no puede resolver un problema solo, discuta. Muchos problemas tienen múltiples capas y requieren múltiples conceptos. Muy a menudo, diferentes miembros tienen diferentes piezas del rompecabezas y solo necesitas armarlos. Esto apenas toma tiempo, y podría terminar resolviendo un problema que de otra manera no podría.
Buena suerte.