¿Cuál es la mejor manera de prepararse para ACM ICPC 2016-17?

EDITAR: Dado que la pregunta se ha modificado y vuelto a hacer, esta respuesta se escribió en diciembre de 2014.

Esta fue la primera vez que intenté la ronda en línea de ICPC Amritapuri (mi segundo año en NIT Allahabad) y tenía esta misma pregunta en mente cuando comencé a prepararme para el ICPC.
No creo que esté lo suficientemente calificado para hacer una declaración, pero al menos puedo decirte cómo se preparó mi equipo para esto … (somos solo un grupo de principiantes)

1> Habíamos empezado con un equipo de dos miembros ya que estábamos teniendo problemas para conseguir un tercer miembro. Esa vez solíamos tener problemas para resolver incluso los problemas básicos, así que comenzamos a practicar como un remedio obvio. Solíamos practicar en CodeChef y CodeForces. CodeChef Long fue realmente útil para llegar a nuevos temas. Terminamos resolviendo 3 preguntas en Long, pero esto claramente no fue suficiente

2> El siguiente paso es analizar algunos algoritmos básicos, STL, un poco de práctica de DP y sentirse cómodo con técnicas como el hashing y el pre-cálculo. Terminamos resolviendo 5-6 problemas en CodeChef Long.

3> Siguiente paso, trabaje a tiempo .. Aquí vino CodeForces .. Comenzamos a participar en las rondas de CodeForces (Tried TopCoder, pero fue un poco desmotivante la primera vez) .. Las rondas de CodeForces son más competitivas y requieren más enfoque, velocidad y precisión. Fue entonces cuando nos dimos cuenta de que nos habíamos acostumbrado a resolver un problema muy lentamente debido a los desafíos largos.
Ahora, comenzamos algo que yo llamaría, auto-imposiciones … Mantuvimos el límite de tiempo para nosotros mismos. Resultado: Terminé resolviendo 6-7 preguntas en CodeChef Long en un máximo de 2 días.

4> Participamos en GCJ y terminamos resolviendo todas las preguntas (pero solo después de muchas WA). Entonces, comenzamos a trabajar en algunos casos de prueba difíciles cada vez que participábamos en cualquier concurso. Esta parte es muy importante como una. solo WA es muy dañino (solo somos principiantes, recuerden 😛) ..

5> En este momento, nuestros algoritmos básicos se aclararon y poco a poco fuimos mejorando nuestra velocidad … (y obtuvimos nuestro tercer miembro). El siguiente paso es trabajar en equipo. Este paso es muy importante, pero a nuestro equipo le faltó esto. , gracias a la demora en llegar al tercer compañero de equipo. El ICPC es muy diferente de los eventos individuales, ya que tiene que trabajar en equipo. Diseñamos estrategias, conocimos los puntos fuertes / débiles de los demás y comenzamos. Participando en eventos de equipo.

6> No somos un grupo de programadores asombrosos, somos principiantes y este hecho se reflejó en nuestro desempeño en nuestro concurso intra-universitario de programación. Nuestro equipo carecía de coordinación y dedicación cuando se trataba de actuar en un grupo. Nosotros no pudimos dividir el trabajo entre nosotros, por lo que comenzamos con una estrategia simple, si uno no puede resolver ninguna de las preguntas restantes, comenzará a realizar pruebas para las preguntas que otros intentan … Esta estrategia resultó ser útil para nosotros cuando realmente participamos en la ronda en línea de ICPC-Amritapuri este año. Terminamos resolviendo 3 preguntas y nos seleccionaron para la ronda en el sitio.

PD: No estoy calificado para guiar a nadie para ICPC (o cualquier otra cosa como un hecho) … pero sé cómo se siente cuando uno comienza a prepararse para ICPC, esa sensación de estar impresionado por personas que son realmente increíbles. al mismo tiempo, se desmotiva por subestimarse a sí mismo. Solo se necesita un poco de coraje, un poco de locura y mucha dedicación para entrar en el deporte de la Programación Competitiva.
Aquí están los perfiles de los miembros de mi equipo:
Aditya Shankar Tripathi:
Usuario CodeChef | CodeChef
megatron_64 – Codeforces

Manish Kumar Sinha:
Usuario CodeChef | CodeChef
mmaks – Codeforces
Perfil de miembro de TopCoder

Asim Krishna Prasad
Usuario CodeChef | CodeChef
pakhandi – Codeforces
Perfil de miembro de TopCoder

Gl & Hf 🙂
Equipo: cerberus

[Hice Bug-e-Code :)]

Puede que no esté lo suficientemente calificado, es decir, no soy un programador profesional ni un participante de ACM ICPC, pero conozco muy bien la competencia y también el tipo de personas que llegan allí.
Pero, ¿qué hay de malo en dar un consejo? Bueno, a juzgar por su pregunta, es bastante evidente que conoce la mayoría de los sitios web para la preparación. Así que no voy a profundizar en eso.

# 1 si. Tienes que hacerlo a través de algoritmos y estructuras de datos. Tienes que destrozarlos. Si tienes pan y mantequilla para el desayuno. Entonces su lenguaje de programación preferido es mantequilla y Estructuras de datos y algoritmos (DS y A) es pan. Como no puedes desayunar sin pan, tampoco puedes subir sin DS y A.

# 2 Ahora debes estar pensando que por qué deberías escucharme y por qué DS & A es tan importante. Es porque DS & A te da una visión más profunda de la programación. Hay muchos temas fascinantes e interesantes que desearías conocer antes y te sorprenderás de que hayan existido. Le dará una idea del tiempo de ejecución de varios algoritmos y sabrá que el solo hecho de saber la solución no es tan importante, ya que encontrar una solución rápidamente es el momento de ejecución menos frecuente. Estudiar algoritmos agudizará su ‘complejidad’.

# 3 Cormen es una biblia para estudiantes de ciencias de la computación. ¿No puedes definir un algoritmo? Bueno, no te preocupes, hay muchos videos en Youtube para ayudarte con eso. Si incluso eso parece menos, puede obtener opiniones de expertos en Quora

# 4 Practica, practica y practica. Siente la necesidad de resolver un problema algorítmico. No piense que está haciendo esto para ACM ICPC. Resuélvelo. No te rindas hasta que encuentres una solución. Los estudiantes pasan horas para encontrar una solución a un problema. Hay que dedicarle mucho tiempo a la codificación. La competencia es intensa, y tienes que estar dedicado para lograrlo. Y como dicen, una gota después de una gota llena un cubo y luego un río, y luego un océano. Del mismo modo, trabaja duro, dedica un poco de tu tiempo diario a la codificación. Comenzarás a mejorar dentro de poco tiempo.

Cita a Brian Bi (Finalista mundial de ACM ICPC) de una de sus respuestas: “Resolver problemas de ACM a menudo requiere una gran cantidad de conocimientos avanzados en algoritmos y estructuras de datos. Puede aprender este conocimiento de varias fuentes, tales como: las páginas de capacitación de USACO , libros de texto como Introducción a los algoritmos y cursos de informática en su universidad. Y, por supuesto, mucha y mucha práctica para ayudarlo a aplicar los conceptos que aprende “.

# 6 Ahora el punto es administrar tu tiempo. Un día típico en la vida de un estudiante indio de ingeniería tiene estudios universitarios de 9 am a 5 pm (eso es 8 horas). Teniendo en cuenta que dormir durante 7 horas a un promedio te deja con 9 horas al día (días laborables). ¿No puede administrar un poco y ahorrar al menos 2-3 horas para la codificación? Bueno, es una ventaja de los tiempos universitarios son flexibles.
Los fines de semana es el momento para que usted presente lo que no pudo durante los días de semana. Mantener los problemas más difíciles para los fines de semana. Siéntese en paz e intente encontrar una solución para el problema hasta que lo logre. Por supuesto que puedes practicar más.
en los fines de semana. ¿No puedes hacer esta pequeña tarea por tu amor (Codificación, como mencionas)?

# 7 Por último, Quora es un lugar donde puede encontrar una enorme cantidad de conocimiento sobre el CIPC. Aquí puede encontrar mucha gente que ha calificado y ganado el ICPC, lo que también tiene muchos indios. Siempre puede encontrar preguntas sobre los expertos que respondan al ICPC.
Bueno, todavía creo que mi respuesta no será de mucha ayuda, así que te daré algunos enlaces que encontré para ti al escribir esta respuesta:

¿Cómo se preparó la ilusión de equipo (Smit Hinsu, Nishant Krishan y Pulkit Goel) para ACM ICPC?
¿Quién / qué ayuda (s / ed) o te inspira (s / d) mientras participas en concursos de programación algorítmica?
¿Puedo romper el ACM-ICPC en 1.5 años si tengo que empezar desde cero?
¿Cuál fue la estrategia de Programación Competitiva de Anudeep Nekkanti para convertirse en el número 35 en el ranking mundial, en solo 6-7 meses?
¿Cómo se convirtió Anudeep Nekkanti en tan bueno en programación competitiva?
¿Cuál es la menor cantidad de conocimientos necesarios para garantizar que pueda comprender los problemas de ACM? ¿Cómo puedo participar en el concurso?

Espero haberte ayudado. 🙂

Oye, más que una estrategia, ahora lo que importa es la cantidad de horas que dedicas a la práctica. No salgas todo sobre la teoría de la lectura. Sigue intentando resolver problemas. Compruebe sus respuestas y lea la teoría relevante cuando no pueda entender la respuesta. Solo recuerda que el concurso no es sobre conocimiento sino sobre creatividad. Necesitas poder usar lo que sabes y crear soluciones. Entonces, solo practica … mucho.

¿Cómo gestionar con los cursos? Eso depende totalmente de ti. Un amigo y un senior mío descuidan por completo todos sus cursos (aunque logra un GPA decente) y se dedican a la programación. De hecho, no es realmente una elección difícil. Después de un tiempo, dejará de disfrutar de los cursos y automáticamente pasará el mínimo tiempo con los cursos.

Así que sí, no te preocupes por la estrategia en este momento. Tal vez un par de meses antes del concurso comiences a practicar un poco en equipo y quizás desarrolles una estrategia. Justo solo practica y disfruta de la codificación.

LA mejor manera de prepararse para tales exámenes para leer la teoría a la vez que se resuelven las preguntas de manera simultánea … Usted está haciendo lo correcto … No hay problema …….

Lo más importante es creer en ti mismo, no esperes frutos del árbol hasta que esté completamente madurado …

Los alogoritmos y la estructura de datos tienen problemas mixtos, simples y difíciles …

TODO LO MEJOR >>>>>>>>> Dale lo mejor de ti

Para despejar la primera ronda de ACM-ICPC, tiene que resolver los problemas en diferentes jueces de programación en línea como codechef, hackerrank, code forces, etc.

La primera ronda es muy fácil y puedes romperla fácilmente si haces la práctica básica en estos sitios.

La segunda ronda es dura. debe tener conocimiento de diferentes algoritmos y también debe hacer más práctica en los sitios anteriores y también puede probar problemas en https://icpc.baylor.edu/&nbsp ; y también el juez en línea A2. Esto realmente te ayudará.