Índice del concurso de programación Challenge (segunda edición)
"Concurso de programación de desafíos (segunda edición)"
Capítulo 1 Listo para comenzar - Preparación 1 1.1 ¿Qué es el concurso de programación 2 1.2 El concurso de programación más prestigioso 5 1.2.1 Un mundo- Competencia de escala: Google Code Jam (gcj) 5 1.2.2 ¡Apuntando a una clasificación alta! ——topcoder 5 1.2.3 La competencia más antigua——acm-icpc 6 1.2.4 Olimpiada de informática para estudiantes de secundaria——joi-ioi 6 1.2.5 Evaluación automática a través de Internet——juez en línea (oj) 6 1.3 Cómo utilice este libro 7 1.3.1 Contenidos cubiertos en este libro 7 1.3.2 Lenguaje de programación utilizado 7 1.3.3 Procesamiento de la descripción del problema 7 1.3.4 Estructura del programa 7 1.3.5 Ejercicios 8 1.3.6 Lea este libro detenidamente Más métodos de práctica en al final del libro 8 1.4 Cómo enviar respuestas 9 1.4.1 Método de envío POJ 9 1.4.2 Método de envío GCJ 11 1.5 Buscando algoritmos eficientes 15
.1.5.1 Qué es la complejidad 15 1.5.2 Acerca del tiempo de ejecución 15 1.6 Calentamiento fácil 16 1.6.1 Comience con preguntas simples primero 16 1.6.2 Preguntas POJ hormigas 18 1.6.3 Preguntas de lotería con dificultad creciente 20 Capítulo 2 Novato - Elemental Capítulo 25 2.1 La "búsqueda exhaustiva" más básica 26 | 2.1.1 Función recursiva 26 | 2.1.2 Pila 27 | 2.1.3 Cola 28 | 2.1.4 Búsqueda en profundidad 29 | 2.1.5 Búsqueda en amplitud 33 | 7 Poda 38 2.2 ¡Sigue avanzando! Método codicioso 39 2.2.1 Problema de monedas 39 2.2.2 Problema de intervalo 40 2.2.3 Problema de orden mínimo del diccionario 43 2.2.4 Otros ejemplos 45 2.3 "Programación dinámica" para la reutilización de resultados registrados 51 2.3.1 Búsqueda memorizada y programación dinámica 51 2.3 .2 Exploración adicional de la relación de recursividad 57 2.3.3 DP sobre problemas de conteo 66 2.4 Estructuras de datos para procesar y almacenar datos 70 2.4.1 Árboles y árboles binarios 70 2.4.2 Colas y montones de prioridad 71 2.4.3 Árboles de búsqueda binaria 77 2.4 .4 Búsqueda de unión 84 2.5 En realidad son “gráficos” 91 2.5.1 ¿Qué es un gráfico 91 2.5.2 Representación de gráfico 94 2.5.3 Búsqueda de gráfico 97 2.5.4 Problema de camino más corto 99 2.5.5 Árbol de expansión mínimo 105 2.5.6 Problemas de aplicación 107 2.6 Consejos para resolver problemas matemáticos 113 2.6.1 División euclidiana 113 2.6.2 Algoritmos básicos sobre números primos 117 2.6.3 Operación modular 121 2.6.4 Operación de potencia rápida 122 2.7 Desafiemos juntos a gcj Tema (1) 125 2.7. 1producto escalar mínimo 125 2.7.2filas locas 127 2.7.3sobornar a los prisioneros 129 2.7.4millonario 132 Capítulo 3 Sobresaliente - Capítulo Intermedio 137 ¡3.1 no se trata solo de encontrar valores! "Búsqueda binaria" 138 3.1.1 Encontrar un valor de una matriz ordenada 138 3.1.2 Suponer una solución y determinar si es factible 140 3.1.3 Maximizar el valor mínimo 142 3.1.4 Maximizar el valor promedio 143 3.2 Técnicas comunes seleccionadas ( 1) 146 3.2.1 Método de toma de pie 146 3.2.2 Inversión (problema de conmutación) 150 3.2.3 Colisión elástica 158 3.2.4 Enumeración por la mitad (búsqueda bidireccional) 160 3.2.5 Discretización de coordenadas 164 3.3 Utilización de varios datos estructuras 167 3.3.1 Árbol de segmentos de línea 167 3.3.2árbol indexado binario 174 3.3.3 Método del cubo y división cuadrada 183 3.4 Competente en programación dinámica 191 3.4.1 Compresión de estado dp 191 3.4.2 Potencia de matriz 199 3.4
.3 Usar estructuras de datos para resolver problemas de manera eficiente 206; 3.5 Flujo de red para resolver problemas con flujo de agua 209; 3.5.1 Flujo máximo 209; 3.5.2 Corte mínimo 212; 220; 3.5.5 Coincidencia y cobertura de aristas, conjuntos independientes y cobertura de vértices 221 3.5.6 Flujo de costo mínimo 222 3.5.7 Problemas de aplicación 228 3.6 Geometría computacional que trata con planos y espacios 250 3.6.1 Fundamentos de geometría computacional 250 3.6.2 Límite casos 255 3.6.3 Escaneo plano 258 3.6 .4 Casco convexo 260 3.6.5 Integral numérica 263 3.7 Desafiemos las preguntas de gcj (2) 267 3.7.1 números 267 3.7.2 sin trampas 269 3.7.3 gráficos de existencias 271 3.7.4 riego de plantas 273 . 5conjuntos de números 278 3.7.6torres wifi 280 Capítulo 4 Llegar a la cima - Capítulo avanzado 285 4.1 Problemas matemáticos más complejos 286 4.1.1 Matriz 286 4.1.2 El mundo de la aritmética modular 291 4.1.3 Contar 295 4.1.4 Contar con simetría 300 4.2 Descubre el juego La estrategia ganadora 305 4.2.1 Juegos y estrategias ganadoras 305 4.2.2nim 311 4.2.3número grundy 315 4.3 El camino para convertirse en un maestro de la teoría de grafos 320 4.3.1 Descomposición de componentes fuertemente conectados 320 4.3.22-sat 324 4.3.3lca 328 4.4 Técnicas comunes seleccionadas (2) 335 4.4.1 Aplicación de pila 335 4.4.2 Aplicación de cola de doble extremo 337 4.4.3 Método de duplicación 345 4.5 Usa tu cerebro para buscar 350 4.5.1 Poda 350 4.5. 2a* e ida* 356 4.6 Divide, resuelve, fusiona: método divide y conquistarás 359 4.6.1 Método divide y conquistarás en la secuencia 359 4.6.2 Método divide y conquistarás en el árbol 360 4.6.3 Método divide y conquistarás en el plano 364 4.7 Manejar cadenas magníficamente 368 4.7. 1 Algoritmo de programación dinámica en cadenas 368 4.7.2 Coincidencia de cadenas 373 4.7.3 Matriz de sufijos 378 4.8 Retemos juntos la pregunta gcj (3) 387 4.8.1capa de mina 387 4.8.2año de más code jam 392 4.8.3 equipo de fútbol 395 4.8.4 caballero sin fin 399 4.8.5 el año de code jam 403 Temas extendidos no cubiertos en este libro 408 Lista de ejemplos en el libro 411 Referencias 413