Este problema se puede resolver utilizando una combinación de programación dinámica y un DFS.
Deje que [math] DP [i] [j] [/ math] almacene el número de rutas desde [math] S [/ math] a [math] (i, j) [/ math].
Entonces, si la celda [matemática] (i, j) [/ matemática] no está bloqueada, entonces [matemática] DP [i] [j] = DP [i – 1] [j] + DP [i] [j – 1] [/ math] (Tendrá que poner controles de condiciones límite, controles de validez, etc.).
- ¿Cuál es la relación entre las cadenas de Markov y los procesos de Poisson?
- ¿Cuáles son las ventajas de los algoritmos SVM?
- Si todos los códigos de computadora son 0s y 1s, ¿cómo reconoce y entiende la computadora estos símbolos en primer lugar?
- Cómo inicializar una matriz
- ¿Cuáles son los tiempos de ejecución para insertar un elemento en un LinkedList en la cabeza, el final y en algún lugar en el medio?
Si está bloqueado, puede establecer [matemática] DP [i] [j] = -1 [/ matemática] o establecer algún otro indicador.
Si al final, [matemática] DP [n] [n] [/ matemática] es positiva, entonces tenemos el número de ruta válida desde [matemática] S [/ matemática] a [matemática] T [/ matemática].
Sin embargo, si no hay rutas válidas, necesitamos hacer un DFS desde [math] T [/ math] y verificar si [math] S [/ math] es accesible.