mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
76 lines
3.7 KiB
HTML
76 lines
3.7 KiB
HTML
<p>一个公司在全国有 <code>n</code> 个分部,它们之间有的有道路连接。一开始,所有分部通过这些道路两两之间互相可以到达。</p>
|
||
|
||
<p>公司意识到在分部之间旅行花费了太多时间,所以它们决定关闭一些分部(<b>也可能不关闭任何分部</b>),同时保证剩下的分部之间两两互相可以到达且最远距离不超过 <code>maxDistance</code> 。</p>
|
||
|
||
<p>两个分部之间的 <strong>距离</strong> 是通过道路长度之和的 <strong>最小值</strong> 。</p>
|
||
|
||
<p>给你整数 <code>n</code> ,<code>maxDistance</code> 和下标从 <strong>0</strong> 开始的二维整数数组 <code>roads</code> ,其中 <code>roads[i] = [u<sub>i</sub>, v<sub>i</sub>, w<sub>i</sub>]</code> 表示一条从 <code>u<sub>i</sub></code> 到 <code>v<sub>i</sub></code> 长度为 <code>w<sub>i</sub></code>的 <strong>无向</strong> 道路。</p>
|
||
|
||
<p>请你返回关闭分部的可行方案数目,满足每个方案里剩余分部之间的最远距离不超过<em> </em><code>maxDistance</code>。</p>
|
||
|
||
<p><strong>注意</strong>,关闭一个分部后,与之相连的所有道路不可通行。</p>
|
||
|
||
<p><b>注意</b>,两个分部之间可能会有多条道路。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong class="example">示例 1:</strong></p>
|
||
|
||
<p><img alt="" src="https://assets.leetcode.com/uploads/2023/11/08/example11.png" style="width: 221px; height: 191px;" /></p>
|
||
|
||
<pre>
|
||
<b>输入:</b>n = 3, maxDistance = 5, roads = [[0,1,2],[1,2,10],[0,2,10]]
|
||
<b>输出:</b>5
|
||
<b>解释:</b>可行的关闭分部方案有:
|
||
- 关闭分部集合 [2] ,剩余分部为 [0,1] ,它们之间的距离为 2 。
|
||
- 关闭分部集合 [0,1] ,剩余分部为 [2] 。
|
||
- 关闭分部集合 [1,2] ,剩余分部为 [0] 。
|
||
- 关闭分部集合 [0,2] ,剩余分部为 [1] 。
|
||
- 关闭分部集合 [0,1,2] ,关闭后没有剩余分部。
|
||
总共有 5 种可行的关闭方案。
|
||
</pre>
|
||
|
||
<p><strong class="example">示例 2:</strong></p>
|
||
|
||
<p><img alt="" src="https://assets.leetcode.com/uploads/2023/11/08/example22.png" style="width: 221px; height: 241px;" /></p>
|
||
|
||
<pre>
|
||
<b>输入:</b>n = 3, maxDistance = 5, roads = [[0,1,20],[0,1,10],[1,2,2],[0,2,2]]
|
||
<b>输出:</b>7
|
||
<b>解释:</b>可行的关闭分部方案有:
|
||
- 关闭分部集合 [] ,剩余分部为 [0,1,2] ,它们之间的最远距离为 4 。
|
||
- 关闭分部集合 [0] ,剩余分部为 [1,2] ,它们之间的距离为 2 。
|
||
- 关闭分部集合 [1] ,剩余分部为 [0,2] ,它们之间的距离为 2 。
|
||
- 关闭分部集合 [0,1] ,剩余分部为 [2] 。
|
||
- 关闭分部集合 [1,2] ,剩余分部为 [0] 。
|
||
- 关闭分部集合 [0,2] ,剩余分部为 [1] 。
|
||
- 关闭分部集合 [0,1,2] ,关闭后没有剩余分部。
|
||
总共有 7 种可行的关闭方案。
|
||
</pre>
|
||
|
||
<p><strong class="example">示例 3:</strong></p>
|
||
|
||
<pre>
|
||
<b>输入:</b>n = 1, maxDistance = 10, roads = []
|
||
<b>输出:</b>2
|
||
<b>解释:</b>可行的关闭分部方案有:
|
||
- 关闭分部集合 [] ,剩余分部为 [0] 。
|
||
- 关闭分部集合 [0] ,关闭后没有剩余分部。
|
||
总共有 2 种可行的关闭方案。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= n <= 10</code></li>
|
||
<li><code>1 <= maxDistance <= 10<sup>5</sup></code></li>
|
||
<li><code>0 <= roads.length <= 1000</code></li>
|
||
<li><code>roads[i].length == 3</code></li>
|
||
<li><code>0 <= u<sub>i</sub>, v<sub>i</sub> <= n - 1</code></li>
|
||
<li><code>u<sub>i</sub> != v<sub>i</sub></code></li>
|
||
<li><code>1 <= w<sub>i</sub> <= 1000</code></li>
|
||
<li>一开始所有分部之间通过道路互相可以到达。</li>
|
||
</ul>
|