Tree Edges Coloring

3.8

17 votes
Medium, Approved
Problem

View Russian Translation

You are given a tree T of n nodes. The nodes in the tree are numbered 1 through n. Let's consider some set of different colors numbered 1 through n1. Each color costs differently. You are given a sequence cost1,cost2,...,costn1 of the color costs.

For each edge, you should choose exactly one color in such a way that no two incident edges have the same color and the sum of the chosen color costs is as minimal as possible.

More formally, let's assign some unique integer from 1 to n1 to each of the edges of T. A sequence c1,c2,...,cn1 (1ckn1) is called an edge coloring of the tree; ck is called the color of the k'th edge. An edge coloring is called valid, if there is no such a pair of edges, that share a common node and have the same color.

The cost of an edge coloring is the sum of the color costs for all the edges of the tree. Your task is to find the cost of the cheapest valid edge coloring.

Input format

The first line contains one integer t denoting the number of test cases in the input.

The first line of each test case description contains an integer n.

The second line contains n1 positive integers denoting cost1,cost2,...,costn1.

Each of the next n1 lines contains two integers u and v denoting an edge of the tree.

Output format

For each test case, output a single integer: the cost of the cheapest valid edge coloring.

Constraints

  • 1t16
  • 1n100
  • 1costcolor1000

Subtasks

Extra constraints Points Which tests
n8 30 1
n10 10 2
n25 10 3
n50 10 4
n70 10 5
no extra constraints 30 6-8
Time Limit: 4
Memory Limit: 256
Source Limit:
Explanation

Let's number the edges of the sample trees as they go in the input.

The first test case of the sample input: one of the optimal edge colorings is (1, 2, 3, 1).

The second test case of the sample input: one of the optimal edge colorings is (1, 2, 3, 4, 5).

Editor Image

?