|Máximo flujo: algoritmo de DinicMaster
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: algoritmo de Dinic

Master100 pts·Algoritmos

Enunciado

Máximo flujo: algoritmo de Dinic

Implementa el algoritmo de Dinic para calcular el flujo máximo en una red de flujo.

El algoritmo de Dinic es más eficiente que Edmonds-Karp: su complejidad es O(V² · E), frente a O(V · E²) de Edmonds-Karp. Lo logra combinando dos fases:

  1. BFS — construye un grafo de niveles (level graph) asignando a cada nodo su distancia en saltos desde la fuente.
  2. DFS bloqueante — encuentra flujos bloqueantes en el grafo de niveles usando un puntero de avance (ptr) para evitar recorrer aristas ya agotadas.

Estas dos fases se repiten hasta que el sumidero deja de ser alcanzable desde la fuente.

Entrada

  • n — número de nodos (numerados de 0 a n-1).
  • source — nodo fuente.
  • sink — nodo sumidero.
  • edges — array de aristas, cada una representada como [u, v, capacity].

Las aristas son dirigidas. Internamente debes mantener aristas inversas con capacidad 0 para permitir cancelaciones de flujo.

Salida

Entero con el valor del flujo máximo de source a sink.

Ejemplo

// Red con 4 nodos (0=fuente, 3=sumidero)
const edges = [[0,1,3],[0,2,3],[1,2,2],[1,3,3],[2,3,2]];
dinicsMaxFlow(4, 0, 3, edges); // → 5

Restricciones

  • 2 ≤ n ≤ 500
  • 0 ≤ edges.length ≤ 5000
  • 1 ≤ capacity ≤ 10⁶
  • No hay auto-bucles ni aristas paralelas con la misma dirección.
Restriccionesexpand_more
  • Dificultad: Master
  • Completa todos los test cases para obtener los 100 puntos.
  • No modificar la línea export al 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
Máximo flujo: algoritmo de Dinic — Master | Coding Challenges · Coding Challenges