Me estoy preparando para el ACM-ICPC 2016, ¿cuál debería ser la estrategia perfecta y cuánto tiempo debo practicar diariamente?

Lo más importante cuando se prepara para ACM – ICPC es práctica, práctica y más práctica. Cuanto más practiques, más posibilidades tendrás de llegar a las Regionales o incluso a las Finales Mundiales. Si bien algunas personas pueden decir que debe comenzar con el aprendizaje de Algoritmos y Estructuras de Datos, le recomendaría que aprenda los conceptos básicos de cualquier lenguaje entre C / C ++ / Java hasta un nivel tal que pueda realizar una tarea sin necesidad de consultar el sintaxis en el libro de texto / internet. Y luego, sumérgete directamente en el mundo de la codificación competitiva y sigue aprendiendo cosas nuevas cuando sea necesario. Por ej. Si encuentra un problema en el que necesita un algoritmo para Prime Generation, piense en el método más básico e impleméntelo, debería funcionar el 70% del tiempo, ahora piense cómo puede mejorarse en términos de velocidad y memoria y siga resolviendo otros problemas, cuando encuentre un problema como PRIME1 en Spoj, es cuando todos sus métodos fallarán y ahora necesitaría un nuevo algoritmo para la misma tarea anterior de Prime Generation, una forma de superar este problema es utilizando el algoritmo de tamizado segmentado (programación dinámica) entre muchos otros. De esta manera, aprenderá gradualmente todos los algoritmos necesarios para la programación competitiva, como varios tipos de búsqueda, clasificación, algoritmos de árbol y gráfico, algoritmos de flujo de red, etc.

Hay muchos sitios para ayudarlo en esto, como CodeChef, CodeForces, HackerEarth, HackerRank, Spoj, TopCoder, ProjectEuler, etc.

Para alcanzar el nivel requerido para ACM – ICPC, mantenga un objetivo de resolver 2 – 3 problemas todos los días desde cualquiera de los sitios mencionados anteriormente y aborde los sitios en el siguiente orden y siga resolviendo problemas hasta que resuelva al menos 80 – 100 problemas en cada uno de ellos:

  1. ProjectEuler / HackerRank
  2. HackerEarth
  3. CodeChef / CodeForces
  4. Spoj
  5. TopCoder

En este momento, comprenderá a fondo todos los algoritmos utilizados en la codificación competitiva y los diferentes tipos de preguntas que se hacen en ellos y los diferentes estilos en los que se hacen. En mi opinión, 6 meses de práctica de este tipo podrían llevarlo fácilmente a las Regionales ACM – ICPC y 1 año del mismo lo llevaría fácilmente a las Finales Mundiales ACM – ICPC (el Teatro de los Sueños de todos los programadores). Cuando creas que estás listo para el ICPC, busca compañeros de equipo que tengan diferentes capacidades de programación que las tuyas para que se complementen y juntos puedan resolver cualquier conjunto de problemas. Luego, siéntese con su equipo durante 5-6 sesiones en una competencia como el entorno y practique preguntas de los Regionales de años anteriores que se pueden encontrar aquí.

¡Sigue esta estrategia y deberías estar listo!

Dato curioso: mi equipo se formó una semana antes que los nacionales en línea y nuestro equipo nunca tuvo tiempo para practicar juntos. Los tres nos reunimos por primera vez el día de los nacionales y aún nos seleccionaron para los Regionales de Asia 2014. Éramos solo un grupo de muchachos con diferentes habilidades que querían ir al ICPC y nos juntamos y Logramos pasar. Pero eso no significa que su equipo no deba practicar en una competencia como el entorno antes del evento real. Siempre le daría una ventaja y una ventaja adicional sobre los demás.

La mejor de las suertes para tus preparaciones de ICPC …
Feliz codificación !!! Salud !!!

¿Hay muchas preguntas como cómo mejorar mis habilidades de programación competitiva rápidamente? en Quora ya (una muy reciente: ¿cuál es la mejor estrategia para mejorar mis habilidades en programación competitiva en C ++ en 2-3 meses?), verifique algunos consejos.

La pregunta es sobre ACM ICPC, por eso me enfocaré en ACM ICPC aquí PC ACM ICPC es un concurso de equipo, por lo tanto, lo primero que necesita es un buen equipo. Si está participando en algún concurso regional débil, o tiene un nivel individual muy bueno, incluso puede calificar para WF solo, tomando a dos hermosas chicas al azar como compañeras de equipo. Pero será muy difícil para ti mostrar un buen resultado; Hay algunos ejemplos de concursantes que se presentaron en el nivel mundial 10 en concursos individuales, pero fallaron completamente uno o incluso dos concursos de WF, porque tenían un equipo débil.

Busca un buen equipo. Sería genial si tus compañeros de equipo fueran un poco más fuertes que tú, para que puedas aprender algo de ellos, y también tendrás una motivación natural para trabajar duro para no ser el más débil de ese equipo 🙂

Comience entrenamientos regulares del equipo. Tienes que conocer los lados débiles y fuertes de tus compañeros de equipo. Cuando un buen equipo está trabajando en un conjunto de problemas, es una práctica común decir: mira, esta tarea es para ti, conoces una solución y puedes implementarla rápidamente , cuando puedes resolver alguna tarea por ti mismo, pero sabes que tu compañero de equipo es Mucho mejor con eso. Al menos tienes que saber qué temas son los lados fuertes y débiles de tus compañeros de equipo. Si no tiene mucho tiempo para la preparación, concéntrese en aquellos temas que no son aspectos fuertes de su equipo y no pase mucho tiempo en otros temas. Para cada tema principal, su equipo necesita tener al menos una persona con buen conocimiento de este tema. Por supuesto, es mejor tener un equipo de 3 codificadores rojos donde cada persona pueda mostrar un rendimiento sobresaliente incluso en modo individual 🙂 Aún así, incluso en esos equipos cada persona tiene lados fuertes y débiles, y otros compañeros de equipo saben de ellos. Pero el equipo de 3 codificadores mediocres con una amplia gama de especializaciones, buen trabajo en equipo y mucha experiencia de entrenamiento en equipo y concursos puede vencer a concursantes mucho más fuertes que tienen equipos débiles, o incluso equipos de 3 concursantes más fuertes (pero sin el trabajo en equipo adecuado).

4-5 problemas en CodeChef Long y Div2 AB en Codeforces son de muy bajo nivel, tienes que trabajar duro para alcanzar buenos resultados en 4-5 meses. O encuentra algunos muy buenos compañeros de equipo 🙂

Guíese, CodeForces es más que suficiente. Trabaja en tus puntos débiles. Empecemos por los problemas de DIV II A, digamos que aún no lo has dominado. Resuelve alrededor de 100 como consecutivamente, ahora debes dominar este nivel de dificultad. Ve un poco más arriba. unos 100 problemas B es su necesidad para el estado actual. Una vez que domine la dificultad de los problemas de C, estará listo para aprender nuevos temas y técnicas. Después de dominar ABC DIV II deberías ser un competidor DIV I o cercano. Entonces, es el momento de lidiar con problemas más difíciles, repitamos el mismo proceso. Estoy trabajando en este plan, actualmente estoy en la fase de problemas B. Espero ser maestro internacional con una tasa superior a 2050 en 6 meses.

Aprende lo básico

Dirígete a los tutoriales de topcoder ( https://www.topcoder.com/tc?modu …) y asegúrate de saber cómo usar todas las técnicas básicas que se enseñan allí. Además, aprenda todas las estructuras básicas de datos. El objetivo debe ser intentar todos los problemas más simples en todas las áreas.

Identifica tus áreas fuertes

En este momento ya debe saber qué áreas le parecen interesantes. Sumérgete en tu área favorita. Lentamente, comience a resolver problemas cada vez más difíciles en su área fuerte. Por supuesto, no debes dejar de resolver problemas de otras áreas. Su objetivo debe ser que pueda resolver problemas más fáciles (Diga topcoder div2 fácil, medio y difícil) de CUALQUIER área al tiempo que puede resolver problemas aún más difíciles (div 1 medio) en su área fuerte.

Formar un equipo

Es mejor formar un equipo lo antes posible. Participar en un equipo es muy diferente de participar solo. Tener otros también te motivará más a practicar. Intente cubrir todas las áreas principales de la programación competitiva como equipo (es decir, cada tema principal debe ser un área sólida de al menos uno de los miembros del equipo).

Participar

Participa en tantos concursos de calidad como sea posible. Intenta participar en todos los concursos cortos sobre codeforces, topcoder y codechef. Hay muchos concursos de equipo que se alojan en codechef. Asegúrese de participar con su equipo y perfeccionar la estrategia de su equipo.

Upsolve

Solo participar no es suficiente. Una vez finalizado el concurso, tome (al menos) el problema más fácil que no pudo resolver y asegúrese de resolverlo lo antes posible. Antes de consultar el editorial, primero trate de discutir con sus compañeros de equipo y vea si juntos pueden encontrar una solución. Si no, este tema puede ser una debilidad de su equipo. Tal vez alguien en su equipo debería practicar más en ese tema en particular.

Resuelve concursos pasados

Encontrará los últimos ICPC regionales y finales mundiales en el archivo de problemas (ACM-ICPC Live Archive – Home). Esto le dará una idea de cómo es un típico regional. Usted y su equipo deben intentar simular las condiciones reales del concurso tanto como sea posible (por ejemplo, solo una computadora, tiempo de duración continua de 5 horas, etc.)

¡Que te diviertas!

Sobre todo, diviértete mientras te preparas.

¡Buena suerte!

Materiales relacionados:

La respuesta de Balajiganapathi Senthilnathan a ¿Cuáles son los conceptos importantes que uno debe saber para desempeñarse bien en las regiones regionales ACM-ICPC?
La respuesta de Balajiganapathi Senthilnathan a ¿Cuál es la mejor manera de prepararse para la competencia ACM ICPC?

¿Qué estructuras de datos y algoritmos básicos se deben aprender antes de comenzar la programación competitiva?

Para la estrategia y capacitación del equipo, vea Estrategia del equipo – Concurso Wiki y Página en gotdns.org.

Participe en todos los concursos en Topcoder, Codechef y Codeforces. Después de que termine el concurso, lea los editoriales y asegúrese de terminar esos problemas. Sigue haciendo esto perfectamente hasta 2016 y tendrás una muy buena oportunidad de llegar a la final mundial y desempeñarte bastante bien allí (incluso podrías ganarlo si tú y tus compañeros de equipo son lo suficientemente buenos).

Consíguete un equipo y asegúrate de que sigan el mismo régimen de entrenamiento. Además, puedes hacer al menos dos concursos de cinco horas por semana con tu equipo (puedes hacer más si puedes hacerlo).

More Interesting

Me han encadenado a los teléfonos, en servicio al cliente para una compañía de ofertas diarias. ¿Cómo hago para avanzar el siguiente paso en el mundo de las startups, para poder tener un mayor impacto en los productos, la cultura y los servicios?

Quiero apostar 5k en algo para ganar, ¿en qué debería apostar?

No sé qué hacer después de las 12 y estoy totalmente confundido ya que no sé sobre mi interés en futuros estudios.

Si estoy interesado en la astronomía, ¿con qué rama de la física debería familiarizarme?

Estoy contemplando leer / seguir / implementar un libro. ¿Cuál crees que, de seguirse, daría la vuelta y transformaría a una persona?

Tengo 26 años. ¿Cómo debo pasar mis últimos 20 años?

Soy un chico de 23 años de Mumbai. He estado sufriendo de ansiedad y depresión durante los últimos 10 años, pero nunca he consultado a un médico. ¿Dónde puedo encontrar los datos de contacto de un buen psicólogo / psiquiatra? ¿Cuánto costará el tratamiento?

Sigo escuchando que el Xiaomi Mi Pad es una tableta con hardware capaz de un rendimiento estelar, pero por lo tanto, decepcionado miserablemente por la bifurcación MIUI que tiene dificultades mientras realiza tareas serviles como la navegación web. ¿Qué tan cierto es esto?

Mi padre me ha dado una riqueza considerable, incluido el pago de la universidad de mis hijos. Pero también es un misógino abusivo. ¿Qué tengo que hacer?

Sé tocar el teclado y quiero hacer una carrera con él. ¿Dónde empiezo?