这道题是一个优化问题,我们需要设计一种赛道修建的方案,使得修建的 mmm 条赛道中长度最小的赛道长度最大。问题的核心在于找 到一种赛道划分方案,使得最小赛道的长度尽可能大。
解题思路如下:
输入处理: 读取输入,构建无向图,表示城市中的路口和道路。同时,计算每个节点到其他节点的最短路径长度。
二分搜索: 通过二分搜索来确定最小赛道长度的最大值。二分的范围为路口到路口最短路径的最大值到总路径长度的最大值。
DFSDFSDFS 计算赛道长度: 设计深度优先搜索函数,计算以每个节点为起点的赛道长度。在搜索的过程中,使用 multisetmultisetmultiset 存储每个 节点的子树中所有赛道长度,以便找到最小的赛道长度。
CheckerCheckerChecker 函数判定条件: 在深度优先搜索的过程中,统计满足条件的赛道数量。条件是赛道长度不小于当前二分搜索的值。如果满 足条件的赛道数量大于等于 mmm ,则说明当前二分搜索的值可行,否则不可行。
输出结果: 输出最终确定的最小赛道长度的最大值。