QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 512 MB 満点: 100

#8091. 催眠

統計

你刚刚听说城市里新开了一个 PokStop。你显然想去那里并获得可用的物品。这座城市由 $n$ 个交叉路口和 $m$ 条双向道路组成。交叉路口编号为 $1$ 到 $n$。你目前位于第一个交叉路口,而 PokStop 位于第 $n$ 个交叉路口。穿过每条道路需要一分钟。你以多快的速度能到达 PokStop?!

别急,没那么快。每条道路上都有一个催眠兽(Hypno),当你到达道路中点时,它就会准备对你使用超能力。一旦发生这种情况,你就会陷入短暂的睡眠。然后催眠兽会让你梦游到你所在道路的随机一端。因此,一分钟后,你有 $\frac{1}{2}$ 的概率到达道路的另一端,否则会回到原来的交叉路口。

不过有一点:你对每个单独的催眠兽有 $\frac{1}{2}$ 的概率免疫。如果你所在的道路上有一个你免疫的催眠兽,你总能在一分钟内安全地穿过这条路。如果你所在的道路上有一个你易感的催眠兽,你每次穿过这条路时都会睡着。你最初不知道哪些道路上有哪些催眠兽,但在尝试穿过某条道路后,你会知道你当前位于哪个端点。你到达 PokStop 的最小期望时间是多少?

输入格式

第一行包含两个整数 $n, m$ ($2 \le n \le 200\,000, 1 \le m \le 200\,000$),分别表示城市中交叉路口的数量和连接它们的双向道路数量。接下来的 $m$ 行,每行包含两个整数 $a, b$ ($1 \le a, b \le n, a \neq b$),表示由该道路连接的交叉路口编号。

没有两条交叉路口由多条道路连接。城市是连通的,即你可以通过多条道路从任何其他交叉路口到达任意交叉路口。

输出格式

输出一个实数,表示到达位于第 $n$ 个交叉路口的 PokStop 所需的最小期望时间。如果你的答案的绝对误差或相对误差不超过 $10^{-9}$,则被视为正确。

样例

输入格式 1

3 3
1 2
1 3
2 3

输出格式 1

1.500000000000

说明

在第一个样例测试中,最优策略是反复尝试直接通过第二条道路前往目的地。你有 $\frac{1}{2}$ 的概率对该道路上的催眠兽免疫,从而在时间 $1$ 内到达目的地。另一方面,你有 $\frac{1}{2}$ 的概率易感,我们可以证明在这种情况下,你到达目的地的期望时间为 $2 = \frac{1}{2} \cdot 1 + \frac{1}{4} \cdot 2 + \frac{1}{8} \cdot 3 + \frac{1}{16} \cdot 4 + \dots$。因此,总的期望时间为 $\frac{1}{2} \cdot 1 + \frac{1}{2} \cdot 2 = \frac{3}{2}$。

输入格式 2

4 4
1 2
2 4
4 3
3 1

输出格式 2

2.875000000000

说明

在第二个样例测试中,如果你反复尝试通过第二个交叉路口,你的期望时间将等于 $3$ 分钟。如果你只尝试通过第三个交叉路口,结果也是一样。存在一种策略可以获得更好的期望时间。

以下是两个样例测试的示意图:

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#199EditorialOpen题解jiangly2025-12-13 00:06:04View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.