Prueba de la máquina Huawei OD: el problema de menor tiempo en la intersección (Java, JS, Python y C)

Descripción de la pregunta

Supongamos que la calle tiene forma de tablero de ajedrez, la distancia entre cada cuadrado es igual y el tiempo necesario para que los vehículos pasen por cada cuadrado de la calle es timePerRoad;

Hay semáforos en las intersecciones (intersecciones) de las calles, y los períodos T (= luces [fila] [col]) de las luces son diferentes;

Los vehículos pueden seguir recto, girar a la izquierda y girar a la derecha. Para seguir recto y girar a la izquierda, deben esperar el semáforo correspondiente durante el tiempo T antes de poder pasar. Para girar a la derecha no es necesario esperar.

Ahora, dados los períodos de semáforo de n * m intersecciones de calles y las coordenadas de las intersecciones de calles iniciales y finales, calcule el tiempo más corto para que los vehículos pasen por las dos intersecciones de calles.

en:

  1. Los semáforos en los puntos de inicio y fin no se cuentan en el tiempo y las intersecciones se pueden pasar en cualquier dirección.
  2. No puede exceder n * m intersecciones de calles y no puede saltar, pero el borde también es una carretera (es decir: luces [0] [0] -> luces [0] [1] es una ruta válida)

Definición de la función de entrada:

/** 
 * @param luces: El período de cada semáforo en n*m intersecciones de calles, el rango de valores es [0, 120] , el rango de n y m es [1,9] 
 * @param timePreRoad: Dos adyacentes calles El tiempo de viaje de las calles entre las entradas, el rango es [0,600] 
 * @param rowStart: el número de fila del punto de inicio 
 * @param colStart: el número de columna del punto de inicio 
 * @param rowEnd: el número de fila de el punto final 
 * @par

Supongo que te gusta

Origin blog.csdn.net/qfc_128220/article/details/134939367
Recomendado
Clasificación