Dado que usted preguntó específicamente sobre GCJ, ¿por qué no mirar el problema del año pasado?
Ronda de Calificación :
- Problema A: no requiere ningún algoritmo sofisticado, solo necesita sentirse cómodo con sus lenguajes de programación .
- Problema B: debe poder analizar el problema, desarrollar un algoritmo codicioso y tener algunas habilidades matemáticas básicas para derivar toda la fórmula. Por supuesto, debe poder implementarlo en algún lenguaje de programación.
- Problema C: Este también es un problema ad-hoc, en el que debe aplicar fuerza bruta en casos pequeños y luego analizarlos para encontrar patrones.
- Problema D: una vez más, este problema no requiere ningún algoritmo sofisticado, pero debe poder analizar el problema .
Ronda 1A
- Los problemas en esta ronda son principalmente similares a la ronda de Calificación, en el sentido de que todos los problemas requieren solo un análisis cuidadoso del problema, algunas matemáticas y la capacidad de implementar una solución.
- El problema C es un poco más difícil, si no está familiarizado con el aprendizaje automático, es muy difícil encontrar una solución que funcione. Aunque este es un problema único en su tipo, y es poco probable que vea este tipo de problema en otro lugar.
Resumir
Entonces, lo que necesita tener es la capacidad de analizar problemas, matemática básica, buena intuición, capacidad de implementar cosas de manera correcta y eficiente. Algoritmos como programación dinámica, algoritmos gráficos, problemas de estructura de datos aparecen aquí y allá, pero no los verá todo el tiempo. A veces, verá problemas únicos, que pueden requerir algo de Machine Learning (problema C arriba), algoritmo aleatorio (apareció en el año anterior) …
- Estoy planeando escapar de Accenture y perseguir a mis maestros. ¿Tendré algún problema en mi visa que me impida ir al extranjero?
- Me emociono mucho si estoy estreñido y solo me siento mejor cuando ‘voy’ o siento que necesito hacerlo. ¿Por qué sucede eso y cómo puedo solucionarlo?
- Estoy planeando comenzar un sitio web educativo desde un blog y expandirlo a un sitio web completo con foros, cuestionarios, etc. ¿En qué herramientas / plataformas debería construir esto (por ejemplo, Blogger, Weebly, WordPress, etc.)?
- Si obtengo un trabajo en California que paga 150k, ¿cuánto dinero obtendré en mi cuenta (después de impuestos)?
- Si sigo las enseñanzas coránicas sin cuestionarme, ¿mi vida realmente sería mejor? ¿Hay alguna evidencia de la reclamación?
Sobre el libro
Entonces, ¿ayuda el libro ” Introducción a los algoritmos de Thomas Cormen”? Sí , definitivamente ayuda.
- Le enseña a analizar la complejidad y debe comprender esto para saber si su solución es lo suficientemente eficiente como para resolver el problema.
- Te enseña cómo abordar los problemas algorítmicamente . Incluso si eres un genio, es muy difícil resolver problemas en GCJ si no estás familiarizado con lo que el algoritmo puede y no puede hacer, y cómo ‘pensar algorítmicamente’.
- Como se mencionó anteriormente, aparecen problemas de programación dinámica, algoritmo gráfico, estructura de datos .
- Le enseña sobre problemas de P & NP , por lo que puede saber que algunos enfoques conducen a un callejón sin salida y no necesitan perder el tiempo.
- …
Entonces, ¿con qué capítulos comenzar? Primero, lea los capítulos sobre la complejidad del algoritmo, la programación dinámica, los algoritmos de gráficos y las estructuras de datos. Esos son los conceptos básicos y debe estar muy familiarizado con la resolución de estos problemas. Luego, puedes leer al azar o lo que te parezca interesante.
Comentario final
Además de leer el libro, debe intentar resolver algunos problemas en sitios de programación competitivos, por ejemplo, Concursos – Codeforces. Le ayudará a conocer su propia habilidad y familiarizarse con las preguntas de programación.
Buena suerte 🙂