Ejercicio00:00
¿Quieres un reto mayor?
Resuelve en 20:00
info
Importante: Para que se registre el resultado tienes que iniciar sesión.
Máximo flujo en red (Edmonds-Karp)
Master100 pts·Algoritmos
Enunciado
Máximo flujo en red (Edmonds-Karp)
Dado un grafo dirigido con capacidades en sus aristas, calcula el flujo máximo que puede pasar desde un nodo fuente hasta un nodo sumidero usando el algoritmo de Edmonds-Karp (Ford-Fulkerson con BFS para encontrar caminos aumentantes).
Descripción del algoritmo
- Mientras exista un camino de
sourceasinken el grafo residual (BFS):- Encuentra el cuello de botella (mínima capacidad residual en el camino).
- Actualiza las capacidades residuales a lo largo del camino (ida y vuelta).
- Suma el cuello de botella al flujo total.
- Retorna el flujo total acumulado.
Parámetros
numNodes— número de nodos en el grafo (los nodos son0..numNodes-1).edges— array de aristas[u, v, cap], dondeues el nodo origen,vel destino ycapla capacidad.source— nodo fuente.sink— nodo sumidero.
Ejemplo
maxFlow(4, [[0,1,3],[0,2,2],[1,2,1],[1,3,2],[2,3,3]], 0, 3);
// Retorna: 5
// Caminos: 0→1→3 (flujo 2), 0→2→3 (flujo 2), 0→1→2→3 (flujo 1)
Restricciones
2 ≤ numNodes ≤ 1000 ≤ edges.length ≤ 5001 ≤ cap ≤ 10^6- Pueden existir múltiples aristas entre el mismo par de nodos.
- Si no hay camino de
sourceasink, retorna0.
Restriccionesexpand_more
- Dificultad: Master
- Completa todos los test cases para obtener los 100 puntos.
- No modificar la línea
exportal final del archivo. - Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.
Puedes usar console.log() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.
Inicia sesión para reaccionar
Inicia sesión para reaccionar