Tengo un problema de algoritmo. ¿Como puedó resolver esté problema?

Gracias por el A2A! Parece que este problema está destinado a ser un gráfico (nodos con bordes de conexión) y quieren que programe algún tipo de búsqueda.

Si sus nodos están numerados 0- (k-1), entonces la segunda línea en la descripción de la ciudad (una matriz, carreteras []) describe los bordes. A medida que itera (usando i ), el valor de las carreteras [i] ( p ) conecta la ciudad i + 1 con la ciudad p. Veamos el ejemplo:

  1. 3 – hay tres casos de prueba.
  2. 4 – hay cuatro (4) ciudades.
  3. 0 1 2 – ¡Aquí es donde sucede la diversión! Vamos a iterar:
  4. i = 0 – OK, el valor de p es igual a las carreteras [0], entonces p = 0. Este es el I de la primera carretera de la ciudad (conexión / borde). i + 1 = 1, entonces la carretera conecta las ciudades 0 y 1.
  5. i = 1p = carreteras [1] = 1. Tenga en cuenta que esta prueba es simple y que p (carreteras [ i ]) no siempre será igual a i. La ciudad 1 está conectada a la ciudad i + 1, también conocida como 2.
  6. i = 2p = carreteras [2] = 2, i + 1 = 3, por lo que las ciudades 2 y 3 tienen una carretera que conecta.

¡Dejaré la búsqueda real a usted pero le daré algunos obsequios!

  1. Configure su validación de entrada primero. Esto debería ser relativamente fácil, ten cuidado con 0 o pruebas negativas.
  2. Dependiendo de la persona que realiza la prueba (probablemente los conozca mejor que yo), es posible que desee escanear su gráfico en busca de múltiples componentes. Esto significa que hay al menos un conjunto de nodos que no están conectados a otro conjunto (piense en islas).
  3. Recuerde que está buscando el menor número de pasos, por lo que debería comenzar a ver los algoritmos A *, Djikstra y Floyd-Warshall.

¡Buena suerte!