题库练习 Bear and Chase
← 上一题 下一题 →

A10406 | Bear and Chase

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Bearland has $n$ cities, numbered $1$ through $n$ . There are $m$ bidirectional roads. The $i$ -th road connects two distinct cities $a_{i}$ and $b_{i}$ . No two roads connect the same pair of cities. It's possible to get from any city to any other city (using one or more roads).

The distance between cities $a$ and $b$ is defined as the minimum number of roads used to travel between $a$ and $b$ .

Limak is a grizzly bear. He is a criminal and your task is to catch him, or at least to try to catch him. You have only two days (today and tomorrow) and after that Limak is going to hide forever.

Your main weapon is BCD (Bear Criminal Detector). Where you are in some city, you can use BCD and it tells you the distance between you and a city where Limak currently is. Unfortunately, BCD can be used only once a day.

You don't know much about Limak's current location. You assume that he is in one of $n$ cities, chosen uniformly at random (each city with probability ![](/uploads/acgo/image/1fecedb0f99e9583_6cd9be3f212a.jpeg)). You decided for the following plan:

1. Choose one city and use BCD there.
- After using BCD you can try to catch Limak (but maybe it isn't a good idea). In this case you choose one city and check it. You win if Limak is there. Otherwise, Limak becomes more careful and you will never catch him (you loose).
2. Wait $24$ hours to use BCD again. You know that Limak will change his location during that time. In detail, he will choose uniformly at random one of roads from his initial city, and he will use the chosen road, going to some other city.
3. Tomorrow, you will again choose one city and use BCD there.
4. Finally, you will try to catch Limak. You will choose one city and check it. You will win if Limak is there, and loose otherwise.

Each time when you choose one of cities, you can choose any of $n$ cities. Let's say it isn't a problem for you to quickly get somewhere.

What is the probability of finding Limak, if you behave optimally?

输入格式

The first line of the input contains two integers $n$ and $m$ ( $2<=n<=400$ , ![](/uploads/acgo/image/b760946a1dc7c3a9_d3744172cb93.jpeg)) — the number of cities and the number of roads, respectively.

Then, $m$ lines follow. The $i$ -th of them contains two integers $a_{i}$ and $b_{i}$ ( $1<=a_{i},b_{i}<=n$ , $a_{i}≠b_{i}$ ) — cities connected by the $i$ -th road.

No two roads connect the same pair of cities. It's possible to get from any city to any other city.

输出格式

Print one real number — the probability of finding Limak, if you behave optimally. Your answer will be considered correct if its absolute error does not exceed $10^{-6}$ .

Namely: let's assume that your answer is $a$ , and the answer of the jury is $b$ . The checker program will consider your answer correct if $|a-b|<=10^{-6}$ .

输入输出样例

输入 #1
3 3
1 2
1 3
2 3
输出 #1
0.833333333333
输入 #2
5 4
1 2
3 1
5 1
1 4
输出 #2
1.000000000000
输入 #3
4 4
1 2
1 3
2 3
1 4
输出 #3
0.916666666667
输入 #4
5 5
1 2
2 3
3 4
4 5
1 5
输出 #4
0.900000000000
C++ 编辑器
输入
输出