Cada vez que trato de resolver un problema en la programación competitiva, solo se me ocurre el método de la fuerza bruta para resolver el problema. No puedo recordar ningún algoritmo. ¿Qué tengo que hacer?

Una forma es practicar muchos algoritmos bien conocidos con casos de uso efectivos.

La otra forma es un poco más intuitiva. ¿Alguna vez se ha encontrado con una situación en la que puede responder la misma pregunta manualmente con una solución rápida, pero no puede formular un algoritmo?

Se sorprenderá al darse cuenta de que si intenta analizar un poco lo que su cerebro realmente hizo para hacer estallar esta solución casi instantáneamente, se convencerá de ver que puede comprender un patrón que inconscientemente identificó para saltar a una solución. Este patrón es su algoritmo, no siempre es la mejor solución, pero definitivamente es mejor que la fuerza bruta algo que podría haber encontrado.

Y sí, cuanto más practiques una combinación de ambos, mejor obtendrás con el tiempo. Solo piense mucho antes de comenzar a escribir incluso una sola línea de código, porque puede escribir un algoritmo en 5 minutos si tiene el enfoque correcto.

Espero que esto te ayude de alguna manera.

Todo lo que necesitas es más y más práctica. Está bien empezar por pensar la fuerza bruta. Mucha gente ni siquiera puede pensar mucho. El problema principal aquí es que no puede observar patrones bien conocidos en los problemas.

Después de cada concurso intenta leer el editorial. No es la solución. Solo el editorial. Lea sobre el algoritmo discutido. Más importante aún, trate de comprender cómo un problema difícil se dividió en un conjunto de problemas más fáciles que podemos resolver fácilmente utilizando un algoritmo existente que ya conocemos. Eso te ayudará a reconocer patrones en el problema.

No te rindas. Puede ser frustrante seguir intentando sin éxito. Pero cuando el viaje es realmente largo y agotador, la alegría de llegar al destino es mucho mejor

Todo lo mejor !

Casi todos los programadores competitivos comienzan resolviendo problemas usando la fuerza bruta y luego siguen mejorando sus soluciones. Lo primero que debe hacer es aprender todo tipo de algoritmos estándar. La segunda cosa que debes hacer es que, cuando resuelves un problema con un gancho o con un ladrón, debes buscar el editorial. Esta es la forma en que aprendes varios trucos y sigues mejorando.

La tercera cosa que necesitas es, practica. Cuanto más practiques, mejor serás en la programación competitiva. No tiene que preocuparse si inicialmente no puede recordar buenos algoritmos, pero debe seguir mejorando.

¡Todo lo mejor! 🙂

Un algoritmo de programación dinámica analizará todos los enfoques concebibles para resolver el problema y elegirá el mejor arreglo. Posteriormente, generalmente podemos considerar la programación dinámica como una técnica inteligente y de fuerza bruta que nos permite experimentar cada respuesta concebible para elegir la mejor. En la remota posibilidad de que la magnitud del problema sea tal que sea posible experimentar cada disposición concebible y suficientemente rápida, la programación dinámica asegura la búsqueda de la solución ideal. Para la muestra, suponga que necesita ir del punto A al punto B tan rápido como lo haría Sé prudente, en una ciudad dada, en medio de una oleada de horas. Un algoritmo de programación dinámica investigará todo el informe de movimientos, investigará cada combinación de calles que pueda concebir, y exactamente en ese punto le permitirá saber cuál es el camino más rápido. Obviamente, es posible que deba permanecer sentado durante algún tiempo hasta que se complete el algoritmo, y en ese momento exactamente podrá comenzar a conducir. La forma en que tomará será la más rápida (esperando que nada cambie en el entorno externo)

La articulación de que la programación dinámica es la fuerza bruta es correcta, pero es algo difícil de comprender con esa expresión. El propósito de la programación dinámica es, en general, disfrutar de un problema y recuperarlo de forma inteligente. Después de que haya hecho eso, utilizará la fuerza bruta para desentrañar cada pequeña pieza, y luego utilizará la fuerza bruta de nuevo para consolidar las piezas en un último arreglo. Entonces, si bien podría decirse que la programación dinámica es un tipo de arreglo de fuerza bruta, la trampa reside en la forma en que utiliza esa fuerza bruta.

Este es un problema común que enfrentan muchos programadores. Debe probar algo diferente y asumir algunas tareas desafiantes para que pueda descansar del trabajo de rutina. Vaya al sitio web de mettl.com y verifique los bancos de preguntas que se ofrecen allí. Puede verificar sus respuestas al instante y, de esta forma, averiguar cuántos acertó y cuáles están equivocados. Ya que están preparando bancos de preguntas para compañías de reclutamiento, encontrará bancos de preguntas integrales que cubren una amplia gama de temas. Elija el tema que le interese y resuelva las preguntas de muestra. Comprueba cuántos haces correctamente para saber dónde estás parado.

Cuando intente resolver un problema en la programación competitiva, escriba la solución (pseudo código) en un papel. Una vez que haya completado ese problema utilizando el método de fuerza bruta, vuelva a su pseudo código y vea qué puede mejorarse utilizando los algoritmos y las estructuras de datos que conoce. Entonces, haciendo esto, después de algunas iteraciones, tendrá una solución buena y optimizada. Este método inicialmente le costará mucho tiempo y esfuerzo, pero será gratificante a medida que avance.

Es bueno que al menos puedas producir una solución de fuerza bruta para el problema dado. Ahora todo lo que necesita hacer es resolver el mismo problema con un buen algoritmo desde antes. Si no recuerda los algoritmos fundamentales, seguramente puede consultar los libros o Internet para eso y luego tratar de implementarlos en ese problema.

Buena suerte.