#687. 谣言传播
谣言传播
【问题描述】
在一个大型组织中,有 n 名成员,成员之间会通过私下交流传播消息。 然而,消息在传播过程中并不会保持完全准确 —— 每一次转述,都会导致消息可信度下降。
传播规则说明:
- 若成员 A 从成员 B 那里听到消息
- 则消息传到 A 后,其可信度会 乘以一个比例 p(0 < p ≤ 1)
- 不同成员之间的转述比例可能不同
例如:
- 若存在一条传播关系
B → A,其可信度比例为p = 0.9表示:成员 B 的消息传给成员 A 后,可信度会变为原来的 90%
传播特点:
- 消息可以通过 多名成员间接传播
- 一条传播路径的总可信度,等于该路径上所有传播比例的 乘积
- 组织中可能存在 多条不同的传播路径
- 可以自由选择传播路径
任务要求:
现在,一条消息最初由 1 号成员掌握。 请你计算:
这条消息最终传到 n 号成员时,可能达到的最大可信度是多少?
- 如果消息 无法从 1 号成员传到 n 号成员,请输出
0.0000
【输入格式】
- 第 1 行:两个整数
n和mn表示成员数量(1 ≤ n ≤ 100)m表示传播关系数量
- 接下来
m行:每行三个数a b p- 表示消息可以从成员
a传播到成员b - 传播后的可信度会乘以比例
p
- 表示消息可以从成员
【输出格式】
- 输出一行一个实数
- 表示从 1 号成员传播到 n 号成员的最大可信度
- 结果保留 4 位小数
【输入样例】
3 3
1 2 0.9
2 3 0.8
1 3 0.5
【输出样例】
0.7200
【样例说明】
- 路径
1 → 3的可信度为0.5 - 路径
1 → 2 → 3的可信度为0.9 × 0.8 = 0.72 - 取最大值,结果为
0.7200
统计
相关
在以下作业中: