/ Vijos / 题库 /

驱逐猪猡

驱逐猪猡

时间限制:1秒  内存限制:256M


【题目描述】

  奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡。猪猡的文明包含 1 到 \(N\) 一共 \(N\) 个猪城。这些城市由 \(M\) 条由两个不同端点 \(A_j\) 和 \(B_j (1 ≤ A_j,B_j≤ N)\) 表示的双向道路连接。保证城市 1 至少连接一个其它的城市。

  一开始臭气弹会被放在城市 1。每个小时(包括第一个小时),它有 \(P/Q (1 ≤ P,Q ≤1,000,000)\)的概率污染它所在的城市。如果这个小时内它没有污染它所在的城市,那麽它随机地选择一条道路,在这个小时内沿着这条道路走到一个新的城市。可以离开这个城市的所有道路被选择的概率均等。因为这个臭气弹的随机的性质,奶牛们很困惑哪个城市最有可能被污染。

  给定一个猪猡文明的地图和臭气弹在每个小时内爆炸的概率。计算每个城市最终被污染的概率。

【输入格式】

  第 1 行: 四个由空格隔开的整数: \(N, M, P\) 和 \(Q\)。
  第 2 到第 \(M+1\) 行: 第 \(i+1\) 行用两个由空格隔开的整数 \(A_j\) 和 \(B_j\) 表示一条道路。

【输出格式】

  第1到第N行: 在第i行,用一个浮点数输出城市i被摧毁的概率。误差不超过10^-6的答桉会被接受(注意这就是说你需要至少输出6位有效数字使得答桉有效)。

【输入输出样例】

 Input

2 1 1 2
1 2

 Output

0.666666667
0.333333333

【样例解释】

  有两个连接在一起的城市:1--2。臭气炸弹从城市 1 出发,每到一个城市,它都有 1/2 的概率爆炸。可知下面这些路径是炸弹可能经过的路径(最后一个城市是臭气弹爆炸的城市):
  1: 1
  2: 1-2
  3: 1-2-1
  4: 1-2-1-2
  5: 1-2-1-2-1
  ...
  要得到炸弹在城市 1 终止的概率,我们可以把上面的第 1,第 3,第 5……条路径的概率加起来,(也就是上表奇数编号的路径)。上表中第 \(k\) 条路径的概率正好是 \((1/2)^k\),也就是必须在前 \(k-1\) 个回合离开所在城市(每次的概率为 \(1 - 1/2 = 1/2)\)并且留在最后一个城市(概率为 \(1/2\))。所以在城市 1 结束的概率可以表示为 \(1/2 + (1/2)^3 + (1/2)^5 + ...\)。当我们无限地计算把这些项一个个加起来,我们最后会恰好得到 \(2/3\) ,也就是我们要求的概率,大约是 0.666666667。这意味着最终停留在城市 2 的概率为 1/3,大约为 0.333333333。

【数据限制】

  对于 \(100\%\) 的数据,\(1 ≤ N ≤ 300\),\(1 ≤ M ≤ 44,850\)。

【来源】

  Mr.he

信息

ID
2721
难度
(无)
分类
线性代数 | 高斯消元搜索 | 概率论 点击显示
标签
递交数
0
已通过
0
通过率
?
上传者