热搜:NVER node 开发 php

Codeforces Round #250 (Div. 1)B(排序+并查集)_html/css_WEB-ITnose

2024-11-17 11:25:01
Codeforces Round #250 (Div. 1)B(排序+并查集)_html/css_WEB-ITnose

B. The Child and Zoo

time limit per test

2 seconds

memory limit per test

256 megabytes

input

standard input

output

standard output

Of course our child likes walking in a zoo. The zoo has n areas, that are numbered from 1 to n. The i-th area contains ai animals in it. Also there are m roads in the zoo, and each road connects two distinct areas. Naturally the zoo is connected, so you can reach any area of the zoo from any other area using the roads.

Our child is very smart. Imagine the child want to go from area p to area q. Firstly he considers all the simple routes from p to q. For each route the child writes down the number, that is equal to the minimum number of animals among the route areas. Let's denote the largest of the written numbers as f(p,?q). Finally, the child chooses one of the routes for which he writes down the value f(p,?q).

After the child has visited the zoo, he thinks about the question: what is the average value of f(p,?q) for all pairs p,?q (p?≠?q)? Can you answer his question?

Input

The first line contains two integers n and m (2?≤?n?≤?105; 0?≤?m?≤?105). The second line contains n integers: a1,?a2,?...,?an (0?≤?ai?≤?105). Then follow m lines, each line contains two integers xi and yi (1?≤?xi,?yi?≤?n; xi?≠?yi), denoting the road between areas xi and yi.

All roads are bidirectional, each pair of areas is connected by at most one road.

Output

Output a real number ? the value of .

The answer will be considered correct if its relative or absolute error doesn't exceed 10?-?4.

Sample test(s)

input

4 310 20 30 401 32 34 3

output

16.666667

input

3 310 20 301 22 33 1

output

13.333333

input

7 840 20 10 30 20 50 401 22 33 44 55 66 71 45 7

output

18.571429

Note

Consider the first sample. There are 12 possible situations:

  • p?=?1,?q?=?3,?f(p,?q)?=?10.
  • p?=?2,?q?=?3,?f(p,?q)?=?20.
  • p?=?4,?q?=?3,?f(p,?q)?=?30.
  • p?=?1,?q?=?2,?f(p,?q)?=?10.
  • p?=?2,?q?=?4,?f(p,?q)?=?20.
  • p?=?4,?q?=?1,?f(p,?q)?=?10.
  • Another 6 cases are symmetrical to the above. The average is .

    Consider the second sample. There are 6 possible situations:

  • p?=?1,?q?=?2,?f(p,?q)?=?10.
  • p?=?2,?q?=?3,?f(p,?q)?=?20.
  • p?=?1,?q?=?3,?f(p,?q)?=?10.
  • Another 3 cases are symmetrical to the above. The average is .


    题意:RT


    思路:先将点按点权降序排序,然后一个一个点遍历


                假设当前点为i, 则只需考虑i和前面已经遍历过的点,如果存在点j和点v不在同一个连通分量(可以用并查集)


                且j和v都能到达i,则f(j,v)一定等于i的权值,做完以后把i加入并查集即可,并查集还需要维护集合的大小