Las matemáticas discretas son un tema amplio, pero aquí hay algunas cosas esenciales que debes saber para poder resolver problemas de concurso de programación:
- Conteo: verá muchos problemas como “Cuenta el número de formas de hacer X”. En la mayoría de los casos, enumerar todas las formas posibles simplemente no va a funcionar, y se espera que utilice algún tipo de programación dinámica . Para poder resolver los problemas de conteo correctamente, debe tener una buena comprensión de ciertos temas, tales como:
- Relaciones de recurrencia : ubicuas en el conteo de problemas. En particular, aprenda a encontrar recurrencias para contar. Además, aprenda a convertir las recurrencias de alta complejidad en menor complejidad
- Exponenciación de la matriz : en el caso de recurrencias que tienen coeficientes constantes, es posible expresar el vector de estado final como el producto de la potencia de una matriz y el vector de estado inicial. Un buen ejemplo es calcular números de Fibonacci usando la multiplicación de matrices. Este truco ayuda a reducir la complejidad de encontrar el enésimo término de algunas recurrencias de O (N) a O (Log N)
- Coeficiente binomial : Muchos problemas de conteo con simetrías se pueden reducir a encontrar algunos casos y multiplicarlos con algunos coeficientes binomiales. Entonces, aprenda a calcularlos de manera eficiente según el tipo de problema. Hay diferentes tipos de cálculos previos que uno hace. Además, trate de aprender las propiedades de los coeficientes binomiales módulos primos.
- Principio de casillero : Más una técnica de ayuda de prueba en lugar de algo que usted aplica directamente. Pero he usado esto en casos donde se me pidió que encontrara dos casos que compartan alguna propiedad. El ataque de cumpleaños puede considerarse como la variante probabilística del principio del casillero, pero no es tan común.
- Principio de inclusión-exclusión : Cómo formalizar el tratamiento de la doble contabilidad. A veces es mucho más fácil contar dos veces al principio y usar la inclusión-exclusión más tarde que intentar contar dos veces para evitar la recurrencia
- Subconjuntos y permutaciones : aprenda a generar subconjuntos de un conjunto y permutaciones de una secuencia. Existen algunos problemas de conteo en los que se espera que sume cantidades sobre permutaciones o subconjuntos. DP sobre subconjuntos es algo que también debe aprender a este respecto.
- Objetos indistinguibles y distinguibles : aprenda la diferencia y sepa cómo contar los cambios entre los dos casos.
- Problemas de celosía : contar el número de formas de ir entre dos puntos en una red con varios tipos de restricciones es un problema muy común. Aprenda el método básico y cómo aparecen en las soluciones cosas como los coeficientes binomiales y los números catalanes.
- Contando con gráficos : las preguntas de este tipo que he visto comúnmente incluyen DP de árbol. Los problemas de conteo en gráficos que no son de árbol suelen ser difíciles. Ves problemas surgiendo según el teorema de Kirchhoff de vez en cuando también.
- Teorema de enumeración de Pólya : He visto esto surgir en concursos solo un par de veces. Pero aprenda esto y si surge algo, debería ser fácil para usted.
- Aprenda a trabajar con módulos: la mayoría de las veces, se le pide que haga el mod de conteo con un gran número primo (el más favorito es 10 ^ 9 +7). Aprenda a hacer los cálculos sin desbordamiento y aprenda algunas propiedades básicas de los números primos de la teoría de grupos que ayudan a resolver algunos problemas.
- Valor de probabilidad y expectativa : Estas son las cosas básicas que debe saber:
- Cálculo de probabilidades como razones de problemas de conteo : haga esto y puede calcular las cosas con muy buena precisión
- Recurrencias para probabilidades y valores de expectativa: en muchos casos, incluso cuando puede contar y tomar razones para obtener probabilidades, es mucho más fácil encontrar una recurrencia directamente en términos de probabilidades. Sin embargo, cuidar el doble conteo puede ser un dolor
- Linealidad del valor de la expectativa : aprenda a usarlo correctamente (no puedo) y muchos problemas con el valor de la expectativa deberían ser un paseo para usted
- Caminata aleatoria : Los problemas de caminata aleatoria modificada aparecen con frecuencia como problemas de valor de probabilidad / expectativa, así que aprenda los resultados básicos
- Problemas con el lanzamiento de monedas : otro conjunto de problemas prácticamente utilizados en exceso
PD: Probablemente me he perdido un par de cosas. Recuérdame en los comentarios y ampliaré la respuesta.
- ¿Puede C (lenguaje de programación) tratar con grandes números?
- ¿Está 1SAT NP completo?
- Cómo calcular la varianza esperada en el tiempo (t) dada una deriva y volatilidad conocidas
- ¿Qué métodos de análisis deberían usarse cuando el nivel de la variable dependiente es mucho mayor que el número de variable independiente?
- ¿Cuáles son algunas ideas geniales para una presentación del día pi?