我们有一个带有N个节点(编号从0到N-1)和恰好(N-1)条双向边的图G(V,E)。
图中每条边都有正成本C(u,v)(边权)。
整个图形是这样的,即任何一对节点之间都有唯一的路径。
我们还给出了放置炸弹的节点号列表L。
我们的目标是损坏/删除图中的边,使得在损坏/删除图中的边后,炸弹之间没有连接 -
也就是说,在损坏后,任何两个炸弹之间都没有路径。
破坏边(u,v)的成本=边权(u,v)。
因此,我们必须破坏那些边,使得总破坏成本最小。
示例:
图中每条边都有正成本C(u,v)(边权)。
整个图形是这样的,即任何一对节点之间都有唯一的路径。
我们还给出了放置炸弹的节点号列表L。
我们的目标是损坏/删除图中的边,使得在损坏/删除图中的边后,炸弹之间没有连接 -
也就是说,在损坏后,任何两个炸弹之间都没有路径。
破坏边(u,v)的成本=边权(u,v)。
因此,我们必须破坏那些边,使得总破坏成本最小。
示例:
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
我做了什么?
到目前为止,我还没有找到任何有效的方法 :(。
此外,由于节点数为N
,边数正好为N-1
,整个图形是这样的,即任意一对节点之间都有唯一的路径,我得出结论这个图形是一棵树。
我尝试修改Kruskal算法,但也没有帮助我。
谢谢!