CF1917F Construct Tree

题目描述

给定一个整数数组 $l_1, l_2, \dots, l_n$ 和一个整数 $d$。请判断是否可以构造一棵满足以下三个条件的树: - 该树包含 $n+1$ 个节点。 - 第 $i$ 条边的长度等于 $l_i$。 - 该树的(带权)直径等于 $d$。

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 $t$($1 \leq t \leq 250$),表示测试数据的组数。接下来是每组测试数据的描述。 每组测试数据的第一行包含两个整数 $n$ 和 $d$($2 \leq n \leq 2000, 1 \leq d \leq 2000$)。 第二行包含 $n$ 个整数 $l_1, l_2, \dots, l_n$($1 \leq l_i \leq d$)。 保证所有测试数据中 $n$ 的总和不超过 $2000$。

输出格式

对于每组测试数据,如果存在满足所有条件的树,输出 $\texttt{Yes}$,否则输出 $\texttt{No}$。 输出时字母大小写均可。

说明/提示

下图展示了第一组和第三组测试数据的树结构示意图。某一条直径用红色高亮显示。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1917F/b0da55c56a8230f64464b5410b99445c4424c394.png) 由 ChatGPT 4.1 翻译