CF1556H DIY Tree

题目描述

![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1556H/ec54c5de91495326eaccc6bd575ca1d77a67c3a4.png)William 非常喜欢拼图套装。在他的某个生日,他的朋友们送给了他一个包含 $n$ 个顶点的完全无向带权图。 他想要在这个图中构建一棵生成树,使得对于前 $k$ 个顶点满足以下条件:编号为 $i$ 的顶点的度数不超过 $d_i$。编号从 $k+1$ 到 $n$ 的顶点度数没有限制。 William 希望你找到一棵满足所有条件的生成树的最小权值。 生成树是图中边的一个子集,能够在所有 $n$ 个顶点上形成一棵树。生成树的权值定义为生成树中所有边的权值之和。

输入格式

输入的第一行包含两个整数 $n$ 和 $k$($2 \leq n \leq 50$,$1 \leq k \leq \min(n-1, 5)$)。 第二行包含 $k$ 个整数 $d_1, d_2, \ldots, d_k$($1 \leq d_i \leq n$)。 接下来的 $n-1$ 行中,第 $i$ 行包含 $n-i$ 个整数 $w_{i,i+1}, w_{i,i+2}, \ldots, w_{i,n}$($1 \leq w_{i,j} \leq 100$):分别表示边 $(i,i+1),(i,i+2),\ldots,(i,n)$ 的权值。

输出格式

输出一个整数:满足给定度数限制条件下的最小生成树的权值。

说明/提示

由 ChatGPT 4.1 翻译