我们得到一个图 G(V,E),它有 N 个节点(编号从 0 到 N-1)和正好 (N-1)个双向边。
图中的每条边都有一个正成本 C(u,v)(边权重)。
整个图是这样的,在任何一对 Nodes 之间都有一条唯一的路径。
我们还给出了一个节点号列表L,炸弹放置在该列表 L 上。
我们的目标是从图中损坏/移除边缘,这样,在从图中损坏/移除边缘之后,炸弹之间就没有联系了——
也就是破坏后,任意两颗炸弹之间都没有路径。
损坏 Edge(u,v) = Edge weight(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
的,并且整个图是这样的,任何一对节点之间都存在唯一路径,我得出的结论是该图是一个TREE。
我试图修改 Kruskal 算法,但这也对我没有帮助。
谢谢!