【发布时间】:2021-09-30 11:43:59
【问题描述】:
问题:
给定一个由 N 个节点和 N-1 条边组成的无向图。所有边的长度为1。每条边i的权重为Wi。 (0
保证图表没有任何循环。所以两个节点之间总是有一个(也是唯一的)最短路径。
从图中取出一对节点(u, v):
- l 是两个节点之间最短路径的长度
- w是2个节点间最短路径中权重最大的边
给定数字K,计算图中对(u, v)的数量,使得w - l >= K
示例:
N = 3, K = 1
Edges:
1 - 2 - 3
1 - 3 - 2
(边被描述为:u - v - w)
答案:6。所有可能的对是:(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)
蛮力解决方案(N
遍历所有 (u, v) 对,找到与 w 和 l 并排的最短路径。如果 w - l >= K,则增加答案。
时间复杂度:O(N^3)
P/S: 我已经尝试并成功了蛮力解决方案(N
【问题讨论】:
-
“两个节点之间最短路径的最大权重”是什么意思?是路径中权重最高的边还是总路径成本,比较两个节点之间的不同最短路径?如果
u和v之间的两条最短路径具有不同的最大单边权重怎么办?有没有假设从 u 到 v 只有一条最短路径? -
@גלעדברקן “两个节点之间最短路径的最大权重”是路径中权重最高的边。每对 (u, v) 节点只有 1 条最短路径。
-
这是在线测试的地方吗?
-
提示:质心分解的时间复杂度应该在 O(n log²(n)) 左右
-
您的图是一棵树(无环,n 个节点,n-1 条边),因此任何一对节点之间只有一条路径。
标签: algorithm graph-theory undirected-graph