枚举的最小生成树——hdu1598

题目描述:

XX星有许多城市,城市之间通过一种奇怪的高速公路SARS进行交流,每条SARS都对行驶在上面的Flycar限制了固定的Speed,同时XX星人对 Flycar的“舒适度”有特殊要求,即乘坐过程中最高速度与最低速度的差越小乘坐越舒服 ,但XX星人对时间却没那么多要求。要你找出一条城市间的最舒适的路径

大致思路:

第一反应看到差值最小值想到的是二分,二分解决问题的最经典的一类就是二分最小值,而事实上证明这个问题确实可以用二分+最短路来解,但并不是最好操作的解法。这种方法就是枚举+最小生成树,每当确定一对起点和终点,就枚举经过边的最小值,然后通过kruskal算法不断加边,知道两个点在同一个集合中,计算差值更新答案。这样看来的话代码量就少了不少。

代码:

略。

你可能感兴趣的:(最小生成树)