在公司机房中,有 n 台交换机以树形结构连接,交换机的编号从 1 到 n。管理员希望选择一台交换机作为公网接入点(即树的根节点),使得这台交换机到其他任意交换机的最大跳数最小。请计算并输出这个最小的最大跳数。
在树形结构中,最远的两点之间的路径长度称为树的直径。为了使根节点到其他所有节点的最大跳数最小,应将根节点放在直径的中间位置(即树的中心)。这样,根节点到最远节点的距离就是直径的一半,可能为整数或半整数。由于跳数必须是整数,所以我们取整数部分再加一,即最小的最大跳数为 (直径 + 1) / 2。因此,把边权设置为1,树形dp或者dfs,bfs求树的直径,答案为(树的直径+1)/2,这里提供bfs解法
某公司机房内有 n 台交换机,它们按照树形结构组网:任意两台交换机之间都有且仅有一条简单路径。
管理员需要选择其中一台交换机作为公网接入点,要求这个交换机到其他交换机中的最大跳数最小。
对任意一台交换机 u,将其到其余所有交换机的跳数最大值称为 u 的接入半径。相邻交换机之间的直接连接记为 1 跳。
输出最大跳数的最小值。
约束条件:
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册