801 走路

/*
http://oj.daimayuan.top/course/5/problem/254

蜗蜗的世界里有 n 个城市,城市之间通过 m 条单向高速公路连接,
初始他在 1 号城市。蜗蜗想去 n 号城市游玩,假设现在他在 x 号城市,
他会等概率地选择从 x出发的高速公路中的一条走过去。
如果没有任何从 x 号城里出发的高速公路,他就只能留在原地了。蜗蜗会一直走直到他无路可走。

请问蜗蜗有多大的概率能够走到 n 号城市。

输入格式
第一行两个整数 n,m。

接下来 m行,每行两个整数 x,y(1≤x<y≤n) 描述一条从 x 号城市到 y号城市的高速公路。

数据保证没有任何两条高速公路的 x,y是相同的。

注意,数据没有保证 1 号城市一定能走到 n号城市。

输出格式
一行一个整数表示答案。相对误差或绝对误差在 1e-6 内即为正确。

样例输入
3 2
1 2
1 3
样例输出
0.5000000000
数据范围
对于100%
的数据,2≤n≤100,1≤m≤1000
*/


#include <iostream>
#include <vector>

using namespace std;

const int N = 150;
vector<int> v[N];
int n, m;
double f[N];


int main()
{
	cin >> n >> m;
	for (int i = 1; i <= m; i++) {
		int a, b; cin >> a >> b;
		v[a].push_back(b);
	}
	f[1] = 1;
	for (int i = 1; i <= n; i++) {
		int l = v[i].size();
		for (auto& e : v[i]) {
			f[e] += f[i] / l;
		}
	}

	cout << f[n] << endl;

	return 0;
}

posted on 2024-11-28 18:02  itdef  阅读(12)  评论(0)    收藏  举报

导航