Prefacio del libro para desafiar el concurso de programación (segunda edición)
Hoy en día, surgen sin cesar varios concursos de programación. Me temo que muchos lectores han oído hablar de Google Code Jam, TopCoder y ACM-ICPC. Este libro está a punto de presentar este tipo de competencia de programación, cuyo objetivo es resolver tantos problemas como sea posible de manera rápida y precisa dentro del tiempo especificado. Los concursos de programación son ricos en contenido, incluso para los programadores experimentados, no es fácil lograr buenos resultados en el concurso. Para ganar en una competencia de programación, no solo es necesario utilizar una imaginación flexible y un amplio conocimiento para crear el algoritmo correcto, sino que también es necesario implementarlo y depurarlo de una sola vez. Por otro lado, los concursos de programación no están fuera del alcance de los principiantes. Para permitir que más concursantes experimenten la diversión de la competencia, la mayoría de las competencias prepararán una serie de preguntas para principiantes. Además, incluso si no logras buenos resultados en la competencia, podrás ejercitar tus habilidades de manera efectiva a través de la competencia. Lo más importante es que todos puedan disfrutar de la diversión de una competencia feroz. Los autores de este libro han participado en muchos concursos de programación y han adquirido una variedad de conocimientos y habilidades a través de la práctica y el estudio diarios. Este libro resume estos conocimientos y habilidades en un volumen, presentando principalmente algoritmos y su aplicación en aplicaciones relacionadas. Este libro explica las preguntas en orden de fácil a difícil. Los capítulos están organizados con referencia al nivel de dificultad del tema y sus conexiones mutuas. Los temas con más contenido se dividen en múltiples subtemas según el nivel de dificultad y se presentan por separado. Cada tema se intercala con una introducción al algoritmo y explicaciones de ejemplo. Este libro es adecuado para lectores siempre que tengan conocimientos básicos de programación. Todo el código fuente del libro está implementado en C, pero solo se utilizan sus funciones básicas, por lo que incluso si el lector no está familiarizado con C, no afectará la lectura. Acerca de la reimpresión: Sorprendentemente, la primera edición de este libro ha sido muy elogiada por los lectores y me gustaría expresar mi gratitud. En particular, algunos lectores que no están interesados en los concursos de programación también compraron este libro. Esto se debe a que a través de este libro no sólo podrás aprender algoritmos, sino también las ideas detrás de su diseño y aplicación. Este es el punto culminante de este libro que hace época. La segunda edición de este libro agrega cuatro temas adicionales: geometría computacional, reducción de ramas de búsqueda, métodos de dividir y conquistar y algoritmos relacionados con cadenas. Además, se agregan ejercicios adicionales para facilitar que los lectores profundicen su comprensión, y se enumeran temas ampliados que no se tratan en el libro para los lectores que tienen espacio para aprender, enriqueciendo aún más el contenido del libro.