Brian Bi ya ha dado una respuesta maravillosa para presentar una lista de elementos para aprender, pero quiero tratar de responder esta pregunta desde una perspectiva diferente (leer, de una manera más realista y orientada a resultados).
Suponga que lo que está pidiendo es:
¿Qué conocimiento matemático debe aprender para obtener buenos resultados en ICPC?
- ¿Cómo es la informática en NITW? ¿Debería preferirlo a TI en NITK?
- ¿Cómo se puede corromper el valor 5 enviado desde la computadora emisora a 13 cuando llega a la computadora receptora?
- ¿Qué debo hacer para ser un gran hacker?
- Cómo organizar una buena competencia relacionada con el aprendizaje automático o la ciencia de datos
- ¿Qué son los exámenes de competencia para informática?
Para el concurso en sí, diría que intente maximizar la cantidad de problemas que su equipo puede resolver.
Para empezar, ICPC es un concurso de equipo ; Tampoco es un concurso en el que 3 personas se sientan y trabajan en diferentes problemas individualmente, sino que se trata mucho del trabajo en equipo : probablemente escuchaste la idea ” 1 + 1> 2 ” (no matemáticamente); para ICPC diría ” 1 + 1 + 1 >> 3 “. (Existe la parte de adquisición de conocimiento y, la parte de estrategia, y la parte de trabajo en equipo, y probablemente más otras cosas para el concurso, pero no las discutiré en esta respuesta).
Es por eso que supongo que está totalmente bien si no está bien versado en algunos temas más avanzados, como cálculo avanzado y teoría de números avanzada, siempre que uno de los tres miembros del equipo pueda resolver la mayoría de los problemas matemáticos (comunes), eso podría puede ser un problema de probabilidad que le pide que calcule algún tipo de valores esperados, un problema de geometría que requiere resolver un sistema de ecuaciones o un problema de teoría de números que requiere conocer, por ejemplo, el teorema de Lucas. La lista sigue y sigue. (Nota: la palabra “común” también depende en gran medida de la competencia regional en la que participará su equipo).
Lo que quiero señalar aquí es que, si lo siguiente es cierto:
- Los tres (en un solo equipo) tienen un conocimiento sólido para cubrir los temas más comunes para sus competencias regionales y las Finales Mundiales, es decir, no requiere que uno de ustedes conozca todas las áreas, pero es mucho mejor si para cada tema común dado, uno de ustedes es un experto (de modo que P (resolver cualquier problema) aumentará),
- ustedes tienen un muy buen trabajo en equipo, no podría enfatizar más sobre esto, para que puedan utilizar el tiempo de la máquina y el poder del cerebro de manera eficiente, y
- Su equipo tiene suficientes sesiones de entrenamiento que simulan concursos reales y se las arregla para lograr un rendimiento estable y bueno,
entonces hay una buena posibilidad de que su equipo obtenga un buen lugar en concursos reales. (Me doy cuenta de que cada uno de estos puntos fácilmente necesitaría más elaboración, pero me estoy saltando los detalles para centrarme en responder la pregunta original).
Sin embargo, dicho esto, tener algunos conocimientos de matemáticas aún podría ser beneficioso y ayudarlo. En mi collage, tenemos algo llamado ” Prueba de formación de equipo “, donde seleccionamos estudiantes de toda la universidad (bueno, en realidad, generalmente solo los IOI anteriores / concursantes y aquellos que estudian un título de ingeniería estaría interesado en unirse a esta prueba) para representarnos y participar en este prestigioso concurso. Los 3N principales (dependiendo del desempeño de estos concursantes y el presupuesto) generalmente formarían N equipos para representarnos; y de estas personas, los 3 mejores generalmente formarían el equipo que luego (a menudo) avanzaría a las Finales Mundiales.
Supongo que las otras universidades que se toman en serio y están dispuestas a poner recursos en la capacitación de ICPC podrían estar haciendo algo muy similar. En tal prueba, es muy probable que tenga algunos problemas matemáticos intensivos. Entonces, lo que Brian Bi enumeró en su respuesta sería una buena lista. Sin embargo, si tiene confianza y le está yendo lo suficientemente bien en otros temas, digamos que está muy versado en las teorías gráficas y está muy familiarizado con las técnicas de Programación Dinámica (DP) y otras áreas comunes, entonces es posible que ya esté seguro una posición para representar a tu propia universidad.
Una vez que supere esta barrera (o incluso antes de hacerlo), puede comenzar a considerar encontrar un compañero de equipo que pueda compensar sus debilidades.
OK … tal vez también debería volver para responder literalmente a tu pregunta original.
Para completar, aquí hay una lista de elementos (son algo aleatorios; de todos modos no soy un experto en matemáticas) que creo que sería útil para resolver problemas fáciles de medianos en ICPC. Algunos de estos repetirían lo que Brian Bi ha enumerado en su respuesta:
- Probabilidad básica: aplicaciones de ciertos problemas de DP, …
- Conteo básico: aplicaciones de combinación (nCr), permutación (nPr), factorial (n!), Idealmente también coeficientes multinomiales, …
- Geometría básica: productos de puntos, productos cruzados, intersección de dos líneas, cascos convexos, …
- Teoría básica de números: GCD / LCM, generando primos <= N, módulo de congruencia, módulo inverso, …
Para el conocimiento de la teoría de números en particular, también considere examinar las secciones “Básico” e “Intermedio” en mi respuesta a ¿Qué temas importantes de la teoría de números debería saber cada programador? para una lista más larga
¡Buena suerte!
(Para TopCoder y CodeForces y otros concursos individuales , sería una historia totalmente diferente).