10. 迷宫探险
题目描述
在一个神秘的地下迷宫中,有n个房间,编号1到n。每个房间有若干条单向通道通往其他房间(没有自环)。探险者从房间s出发,每次随机选择一条从当前房间出发的通道(等概率),沿着通道进入下一个房间。
当探险者到达房间t时,探险结束。你需要计算到达房间t所需的期望步数(即移动的次数)。由于答案可能很大,请输出对10°+7取模的结果(即期望值在模意义下的值,涉及除法用乘法逆元)。
输入格式:
第一行包含四个整数n,m,s,t,分别表示房间数、通道数、起点和终点。
接下来m行,每行两个整数u,0,表示一条从u到u的单向通道。保证没有自环,但可能有重边。
输出格式:
输出一个整数,表示期望步数对10°+7取模的结果。如果永远无法到达终点,输出一1。
输入输出样例
输入:
3 4 1 3
1 2
2 1
1 3
2 3
输出:
2
数据规模与约定:
l≤n≤200
0≤m≤n(n-1)
1≤s,t≤n,s和t可能相同
保证从任意房间出发,在随机游走下以概率1能到达终点(即所有点都能到达t)。
C++
支持C++11标准