## NO ACM NO LIFE

View as PDF

Points: 30 (partial)
Time limit: 1.4s
Java 8 2.75s
Memory limit: 128M

Problem types
Allowed languages
Ada, Assembly, Awk, Brain****, C, C#, C++, COBOL, CommonLisp, D, Dart, F#, Forth, Fortran, Go, Groovy, Haskell, Intercal, Java, JS, Kotlin, Lisp, Lua, Nim, ObjC, OCaml, Octave, Pascal, Perl, PHP, Pike, Prolog, Python, Racket, Ruby, Rust, Scala, Scheme, Sed, Swift, TCL, Text, Turing, VB, Zig

There is an old country and the king fell in love with a devil. The devil always asks the king to do some crazy things. Although the king used to be wise and beloved by his people, now he is just like a boy in love and can't refuse any request from the devil. Also, this devil looks like a very cute loli.

If you solved the last problem, you will see that the devil can't figure out who is z*p because there are too many people. So anyway, she decided to let it go.

The devil thinks she is the cutest loli in the world, but there are some people in the kingdom who don't think so. And they think WJMZBMR is the cutest loli.

It seems a war is approaching, but in this kingdom, due to old traditions, every conflict is solved by an algorithm contest!

One day, WJMZBMR is hanging out with her friend sevenkplus on the street. And she noticed that there is a group of people playing an algorithm contest to decide who is the cutest loli in the kingdom. One problem attracts her interest:

Given a tree with vertices, we randomly choose vertices of it. Then we can induce a subtree which is the smallest connected subtree of the original tree containing those vertices.

Each vertex has a label, which is an integer. For an induced subtree, we look at its diameter , (if there are many diameters, pick the one with the smallest , and if there is still more than one, then the smallest ). Finally, output how many distinct labels are on the diameter.

What is the expected value we output?

Of course, WJMZBMR is merely a cute loli and doesn't know much about the algorithm contest, but since you are a member of the Princess's Knights, you should solve it for your princess. Can you do it?

#### Input Specification

The first line contains an integer , denoting the number of the test cases.
For each test case, the first line contains two integers , .
The next lines each contain two integers and , meaning there is an edge between and .
The next line contains integers separated by a single space, denoting each vertex's label from vertex to .

#### Output Specification

For each case, output the result.
Absolute or relative error less than will be accepted.

#### Sample Input

1
20 8
2 1
3 1
4 1
5 4
6 3
7 2
8 4
9 5
10 5
11 10
12 11
13 10
14 11
15 12
16 12
17 14
18 13
19 18
20 17
5 6 2 1 2 4 7 3 1 3 5 4 1 7 2 6 1 2 1 5

#### Sample Output

5.7866158609

Original Problem Author: WJMZBMR; Problem Resource: HDU 4900

• commented on April 25, 2018, 12:39 p.m.

This comment is hidden due to too much negative feedback. Click here to view it.

• commented on April 26, 2018, 3:32 a.m. edited

You seem to be under the impression that every problem on the judge is written by an admin, or is even original to DMOJ. This problem is from HDU.

• commented on March 15, 2016, 11:47 p.m.

My solution gets AC here but gets WA on the HDU judge. Has anyone else tried submitting there?

• commented on March 16, 2016, 1:41 a.m.

It's not exact same problem. We have slightly different constraints. Plus I generated data randomly, but without looking at your submission i highly suspect its the (IMO really dumb) corner case.