#CF437C. 孩子与玩具
孩子与玩具
C. 孩子与玩具
每个测试的时间限制: 秒
内存限制: 兆字节
儿童节那天,孩子收到了 Delayyy 送的一个玩具作为礼物。然而,这个孩子太淘气了,迫不及待地想破坏它。
这个玩具由 个部件和 条绳子组成。每条绳子连接两个部件,且每对部件之间最多有一条绳子。为了拆解玩具,孩子必须移除所有部件。他一次只能移除一个部件,每次移除都会消耗一定的能量。我们定义部件 的能量值为 。孩子移除部件 所消耗的能量为 ,其中 是那些与 直接相连且尚未被移走的部件。
帮助孩子找出移除所有 个部件所需的最小总能量。
输入
第一行包含两个整数 和 (;)。
第二行包含 个整数:()。
接下来 行,每行包含两个整数 和 ,表示连接部件 和 的一条绳子(,)。
所有部件编号为 到 。
输出
输出孩子移除所有玩具部件所需的最小总能量。
示例
输入
4 3
10 20 30 40
1 4
1 2
2 3
输出
40
输入
4 4
100 100 100 100
1 2
2 3
2 4
3 4
输出
400
输入
7 10
40 10 20 10 20 80 40
1 5
4 7
4 5
5 2
5 7
6 4
1 6
1 3
4 3
1 4
输出
160
说明
在第一个样例中,一种最优的操作顺序是:
- 先移除部件 ,消耗能量
- 再移除部件 ,消耗能量
- 然后移除部件 ,消耗能量
- 最后移除部件 ,消耗能量
总能耗为 ,这是最小值。
在第二个样例中,无论孩子按什么顺序移除部件,他都将消耗 能量。