se nos da un gráfico G (V, E) con N nodos (numeradas de 0 a N-1) y exactamente (N-1) bidireccional Bordes.costes perjudiciales mínimos en el gráfico
Cada borde en un gráfico tiene un costo positivo C (u, v) (Peso del borde).
El toda gráfico es tal que hay un camino único entre cualquier par de nodos.
También se nos da una Lista L del número de nodo, en el que se colocan las bombas.
Nuestro objetivo es daño/eliminar el borde partir de la gráfica tal, que después de dañino/eliminación de los bordes en el gráfico, no hay conexión entre las bombas -
que es después perjudicial, no hay camino entre dos bombas.
El costo de dañar el borde (u, v) =peso Edge (u, v).
Por lo tanto, tenemos que dañar esos bordes, por lo que el costo total de daño es mínimo.
Ejemplo:
Total Nodes=N=5
Total Bomb=Size of List L=3
List L={2,4,0}//Thats is at node number 2,4 and 0 bomb is placed...
Total Edges =N-1=4 edges are::
u v Edge-Weight
2 1 8
1 0 5
2 4 5
1 3 4
In this case the answer is ::
Total Damaging cost =(Edge Weight (2,4) + Edge Weight(0,1))
=5+5=10.
So when we remove the edge connecting node (2,4),
and the edge connecting node (0,1) ,there is no connection left
between any pair of machines in List {2,4,0};
Note any other,combinations of edges(that we damaged) to achieve the
target goal ,needs more than 10 unit cost.
Constraints::
N(ie. Number of Nodes) <= 100,000
ListSize |L|(ie. Number of Bombs) <= N
1 <=Edge cost(u,v) <= 1000,000
lo que había hecho?
Hasta ahora, no había encontrado ninguna manera eficiente :(.
Además, como el número de nodos es N
, el número de aristas es exactamente N-1
y todo el gráfico es tal que hay un camino único entre cualquier par de nodos, llegué a una conclusión que la gráfica es una ÁRBOL.
traté de modificar el algoritmo de Kruskal pero eso no me ayudó tampoco.
¡Gracias!
Creo que un enfoque codicioso (eliminar el vértice más bajo en cada ruta) tiene una posibilidad en un árbol, pero aún no estoy seguro: \ ¿Qué encontrarías como un enfoque eficiente? – amit
@ amit, Hasta ahora no soy capaz de encontrar ningún método eficiente, para resolver esto. La restricción Número de Nodos = 100,000, eso significa bordes totales = 100,000-1. Entonces el algoritmo O (n log n) será útil y eficiente. –
@All :: Se agregaron las restricciones como Editar. –