1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-09-12 19:01:47 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
Files
leetcode-problemset/leetcode-cn/problem (Chinese)/包含给定路径的最小带权子树 II [minimum-weighted-subgraph-with-the-required-paths-ii].html
2025-05-25 15:08:47 +08:00

66 lines
3.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>给你一个&nbsp;<strong>无向带权&nbsp;</strong>树,共有 <code>n</code> 个节点,编号从 <code>0</code><code>n - 1</code>。这棵树由一个二维整数数组 <code>edges</code> 表示,长度为 <code>n - 1</code>,其中 <code>edges[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></p>
<p>此外,给你一个二维整数数组 <code>queries</code>,其中 <code>queries[j] = [src1<sub>j</sub>, src2<sub>j</sub>, dest<sub>j</sub>]</code></p>
<p>返回一个长度等于 <code>queries.length</code>&nbsp;的数组 <code>answer</code>,其中 <code>answer[j]</code> 表示一个子树的&nbsp;<strong>最小总权重&nbsp;</strong>,使用该子树的边可以从 <code>src1<sub>j</sub></code><code>src2<sub>j</sub></code> 到达 <code>dest<sub>j</sub></code><sub>&nbsp;</sub></p>
<p>这里的&nbsp;<strong>子树&nbsp;</strong>是指原树中任意节点和边组成的连通子集形成的一棵有效树。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<div class="example-block">
<p><strong>输入:</strong> <span class="example-io">edges = [[0,1,2],[1,2,3],[1,3,5],[1,4,4],[2,5,6]], queries = [[2,3,4],[0,2,5]]</span></p>
<p><strong>输出:</strong> <span class="example-io">[12,11]</span></p>
<p><strong>解释:</strong></p>
<p>蓝色边表示可以得到最优答案的子树之一。</p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2025/04/02/tree1-4.jpg" style="width: 531px; height: 322px;" /></p>
<ul>
<li>
<p><code>answer[0]</code>:在选出的子树中,从 <code>src1 = 2</code><code>src2 = 3</code><code>dest = 4</code> 的路径总权重为 <code>3 + 5 + 4 = 12</code></p>
</li>
<li>
<p><code>answer[1]</code>:在选出的子树中,从 <code>src1 = 0</code><code>src2 = 2</code><code>dest = 5</code> 的路径总权重为 <code>2 + 3 + 6 = 11</code></p>
</li>
</ul>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="example-block">
<p><strong>输入:</strong> <span class="example-io">edges = [[1,0,8],[0,2,7]], queries = [[0,1,2]]</span></p>
<p><strong>输出:</strong> <span class="example-io">[15]</span></p>
<p><strong>解释:</strong></p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2025/04/02/tree1-5.jpg" style="width: 270px; height: 80px;" /></p>
<ul>
<li><code>answer[0]</code>:选出的子树中,从 <code>src1 = 0</code><code>src2 = 1</code><code>dest = 2</code> 的路径总权重为 <code>8 + 7 = 15</code></li>
</ul>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>3 &lt;= n &lt;= 10<sup>5</sup></code></li>
<li><code>edges.length == n - 1</code></li>
<li><code>edges[i].length == 3</code></li>
<li><code>0 &lt;= u<sub>i</sub>, v<sub>i</sub> &lt; n</code></li>
<li><code>1 &lt;= w<sub>i</sub> &lt;= 10<sup>4</sup></code></li>
<li><code>1 &lt;= queries.length &lt;= 10<sup>5</sup></code></li>
<li><code>queries[j].length == 3</code></li>
<li><code>0 &lt;= src1<sub>j</sub>, src2<sub>j</sub>, dest<sub>j</sub> &lt; n</code></li>
<li><code>src1<sub>j</sub></code><code>src2<sub>j</sub></code><code>dest<sub>j</sub></code>&nbsp;互不不同。</li>
<li>输入数据保证 <code>edges</code> 表示的是一棵有效的树。</li>
</ul>