¿Cómo debería un estudiante de tercer año de CS practicar con varios jueces en línea?

En primer lugar, es increíble que pueda resolver 4 preguntas en codechef long y 2 en codeforces div2. Pero aún tienes un largo camino por recorrer. Mi consejo sería practicar más y más en sitios como SPOJ, CodeForces, CodeChfef, etc. Has hecho 100 preguntas. GENIAL !!!. Ahora haz ese 200. Hacer esto te haría consciente de tus puntos débiles.
Esto ayudará a fortalecer STL y ayudará a categorizar cualquier problema cada vez que lo vea. Al categorizar me refiero a qué posible desglose del problema es posible a partir de lo siguiente (que conozco actualmente):

  1. Implementación ad hoc , es decir, simplemente basada en lógica. No se requiere una estructura de datos específica o un algoritmo específico para estas preguntas. Los considero rompecabezas.
  2. Problemas basados ​​en gráficos o en árboles , como encontrar las rutas más cortas entre 2 nodos o problemas de flujo de red o resolución de laberintos o cualquier otro problema que pueda transformarse en un problema de gráficos donde los algoritmos como DFS, BFS, Dijkstra, Bellman Ford, etc. puedan usarse de manera eficiente para resolver el problema
  3. Programación dinámica donde tienes que probar todas las posibilidades pero “CLARAMENTE”.
  4. Enfoque codicioso donde la solución óptima localmente conduce a una solución óptima global.
  5. Problema basado en cadenas donde la mayoría de las veces tiene que ver con árboles Suffic, matrices Suffic, algoritmo Z, KMP, etc.
  6. Tal vez tenga algo que ver con alguna estructura de datos avanzada, como árboles de segmentos, árboles indexados binarios, estructuras de datos persistentes, etc. Estos problemas son generalmente difíciles de codificar y solo pueden resolverse de manera eficiente si ya ha practicado problemas similares anteriormente.
  7. Algún problema avanzado basado en las matemáticas .
  8. Algo que ver con la teoría de los números, donde tenemos 2 jugadores y un plan de juego frente a nosotros, y tenemos que responder una determinada pregunta relacionada con el resultado del juego en varios escenarios.
  9. Finalmente, puede ser una combinación de cualquiera de los siguientes que mencioné anteriormente y que usted debe resolver.

Ahora necesita leer mucho y, gracias a la increíble comunidad de codificación que tenemos, esta publicación en CodeChef es una LISTA DE SUEÑOS (al menos para mí) en lo que respecta a los algoritmos más comunes para la programación competitiva.
Estructuras de datos y algoritmos
Por favor revisa esto y una vez más,

Feliz codificación !!!!

Ver OpenCourses en línea.
La mejor opción para mejorar las habilidades algorítmicas (esto podría ser lineal, polinomial, vectorial, logarítmico, etc., partes de matemáticas, física … enorme) sería unirse a un grupo técnico, puede encontrar cursos abiertos en línea e interactuar con otros estudiantes Tuve una idea loca de implementar un juego de nivel pequeño con bots con suficiente conocimiento para predecir el movimiento del usuario 🙂
Además, los grupos pueden ayudar a identificar cuánto están retrasados ​​actualmente (en su mayoría, uno decide qué hay a su alrededor), esto puede tener un efecto de atracción para elevar el pico y también aprender a ayudar, tal vez mejor que aprender del libro.
Estar en un grupo identifica algunas cosas importantes,

  1. de qué manera otros se acercan al mismo problema.
  2. qué problemas tienes en la mano y cómo los identificas.
  3. que son problemas del mundo real