<p>给你一个整数 <code>n</code> ,表示一个国家里的城市数目。城市编号为 <code>0</code> 到 <code>n - 1</code> 。</p> <p>给你一个二维整数数组 <code>roads</code> ,其中 <code>roads[i] = [a<sub>i</sub>, b<sub>i</sub>]</code> 表示城市 <code>a<sub>i</sub></code> 和 <code>b<sub>i</sub></code> 之间有一条 <strong>双向</strong> 道路。</p> <p>你需要给每个城市安排一个从 <code>1</code> 到 <code>n</code> 之间的整数值,且每个值只能被使用 <strong>一次</strong> 。道路的 <strong>重要性</strong> 定义为这条道路连接的两座城市数值 <strong>之和</strong> 。</p> <p>请你返回在最优安排下,<strong>所有道路重要性</strong> 之和 <strong>最大</strong> 为多少。</p> <p> </p> <p><strong>示例 1:</strong></p> <p><img alt="" src="https://assets.leetcode.com/uploads/2022/04/07/ex1drawio.png" style="width: 290px; height: 215px;"></p> <pre><b>输入:</b>n = 5, roads = [[0,1],[1,2],[2,3],[0,2],[1,3],[2,4]] <b>输出:</b>43 <b>解释:</b>上图展示了国家图和每个城市被安排的值 [2,4,5,3,1] 。 - 道路 (0,1) 重要性为 2 + 4 = 6 。 - 道路 (1,2) 重要性为 4 + 5 = 9 。 - 道路 (2,3) 重要性为 5 + 3 = 8 。 - 道路 (0,2) 重要性为 2 + 5 = 7 。 - 道路 (1,3) 重要性为 4 + 3 = 7 。 - 道路 (2,4) 重要性为 5 + 1 = 6 。 所有道路重要性之和为 6 + 9 + 8 + 7 + 7 + 6 = 43 。 可以证明,重要性之和不可能超过 43 。 </pre> <p><strong>示例 2:</strong></p> <p><img alt="" src="https://assets.leetcode.com/uploads/2022/04/07/ex2drawio.png" style="width: 281px; height: 151px;"></p> <pre><b>输入:</b>n = 5, roads = [[0,3],[2,4],[1,3]] <b>输出:</b>20 <b>解释:</b>上图展示了国家图和每个城市被安排的值 [4,3,2,5,1] 。 - 道路 (0,3) 重要性为 4 + 5 = 9 。 - 道路 (2,4) 重要性为 2 + 1 = 3 。 - 道路 (1,3) 重要性为 3 + 5 = 8 。 所有道路重要性之和为 9 + 3 + 8 = 20 。 可以证明,重要性之和不可能超过 20 。 </pre> <p> </p> <p><strong>提示:</strong></p> <ul> <li><code>2 <= n <= 5 * 10<sup>4</sup></code></li> <li><code>1 <= roads.length <= 5 * 10<sup>4</sup></code></li> <li><code>roads[i].length == 2</code></li> <li><code>0 <= a<sub>i</sub>, b<sub>i</sub> <= n - 1</code></li> <li><code>a<sub>i</sub> != b<sub>i</sub></code></li> <li>没有重复道路。</li> </ul>