Supponiamo di ricevere un grafico ponderato G (V, E).Percorso minimo in assenza del bordo specificato
Il grafico contiene N vertici (numerate da 0 a N-1) e M bidirezionale bordi.
Ogni bordo (vi, vj) ha postive distanza d (cioè la distanza tra i due vertici vivj è d)
C'è atmost un bordo tra due qualsiasi vertice e c'è anche alcun sé anello (ie.no bordo collegare un vertice a stessa.)
Inoltre c'è dato S vertice sorgente e D il vertice di destinazione.
let Q sia il numero di query, ciascuna query contiene un bordo e (x, y).
Per ogni query, dobbiamo trovare il percorso più breve da dall'origine S alla destinazione D, assumendo che il bordo (x, y) sia assente nel grafico originale. Se non esiste alcun percorso da S a D, allora dobbiamo stampare No.
I vincoli sono alta 0 < = (N, A, M) < = 25000
Come risolvere questo problema in modo efficiente?
Fino ad ora quello che ho fatto è implementato il semplice algoritmo di Dijakstra.
per ogni query Q, ogni volta che io sono assegnazione (x, y) per Infinity e trovare Dijakstra percorso più breve.
Ma questo approccio sarà molto lento come complessità generale sarà Q (tempo di complessità del percorso Dijastra Shortes) *
Esempio ::
N=6,M=9
S=0 ,D=5
(u,v,cost(u,v))
0 2 4
3 5 8
3 4 1
2 3 1
0 1 1
4 5 1
2 4 5
1 2 1
1 3 3
Total Queries =6
Query edge=(0,1) Answer=7
Query edge=(0,2) Answer=5
Query edge=(1,3) Answer=5
Query edge=(2,3) Answer=6
Query edge=(4,5) Answer=11
Query edge=(3,4) Answer=8
Puoi spiegare come si può calcolare molto facilmente il problema del min-cut? – anukul