1 条题解

  • 0
    @ 2025-8-24 21:14:34

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 览遍千秋
    将伤与泪汇成力化作拳

    搬运于2025-08-24 21:14:33,当前版本为作者最后更新于2023-03-16 08:36:37,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    Source & Knowledge

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

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


    文字题解

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

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

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

    • 设置浮点误差允许量 δ\delta。当 (1p1)(1p2)(1p3)(1p4)S<δ|(1-p_1)(1-p_2)(1-p_3)(1-p_4)-S| < \delta 时,均认为相等。考虑到本题精度要求,δ\delta 可取 10810^{-8}

    • SS10810^8p1,p2,p3,p4p_1,p_2,p_3,p_4 均乘 100100。将浮点数转化为了整形进行处理。


    视频题解

    • 1

    信息

    ID
    8260
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者