CF679D.Bear and Chase

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Bearland has nn cities, numbered 11 through nn . There are mm bidirectional roads. The ii -th road connects two distinct cities aia_{i} and bib_{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 aa and bb is defined as the minimum number of roads used to travel between aa and bb .

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 nn cities, chosen uniformly at random (each city with probability ). 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).
  1. Wait 2424 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.
  2. Tomorrow, you will again choose one city and use BCD there.
  3. 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 nn 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 nn and mm ( 2<=n<=4002<=n<=400 , ) — the number of cities and the number of roads, respectively.

Then, mm lines follow. The ii -th of them contains two integers aia_{i} and bib_{i} ( 1<=ai,bi<=n1<=a_{i},b_{i}<=n , aibia_{i}≠b_{i} ) — cities connected by the ii -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 10610^{-6} .

Namely: let's assume that your answer is aa , and the answer of the jury is bb . The checker program will consider your answer correct if ab<=106|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
    

说明/提示

In the first sample test, there are three cities and there is a road between every pair of cities. Let's analyze one of optimal scenarios.

  1. Use BCD in city 11 .
  • With probability Limak is in this city and BCD tells you that the distance is 00 . You should try to catch him now and you win for sure.
  • With probability the distance is 11 because Limak is in city 22 or city 33 . In this case you should wait for the second day.
  1. You wait and Limak moves to some other city.
  • There is probability that Limak was in city 22 and then went to city 33 .
  • that he went from 22 to 11 .
  • that he went from 33 to 22 .
  • that he went from 33 to 11 .
  1. Use BCD again in city 11 (though it's allowed to use it in some other city).
  • If the distance is 00 then you're sure Limak is in this city (you win).
  • If the distance is 11 then Limak is in city 22 or city 33 . Then you should guess that he is in city 22 (guessing city 33 would be fine too).

You loose only if Limak was in city 22 first and then he moved to city 33 . The probability of loosing is . The answer is .

首页