B3710 破碎的历史

· · 题解

Source & Knowledge

2023 年 2 月语言月赛,由洛谷网校入门计划/基础计划提供。

考察多重循环和小数处理。

文字题解

显然,本题涉及到 p_1,p_2,p_3,p_4 共四个量,其中每一个量 p_i,均有 101 种取值,即 0.00,0.01,0.02,\dots,0.98,0.99,1.00。很显然,我们可以以 double 类型作为循环变量,通过四重循环对 p_1,p_2,p_3,p_4 进行枚举。

但是,浮点数的运算存在浮点误差,(1-p_1)(1-p_2)(1-p_3)(1-p_4) 计算后与 S 比较,由于存在浮点误差,直接使用 == 进行比较,很可能无法得到正确的结果。

对于这种情况,我们有两种处理方法:

视频题解