1 条题解

  • 0
    @ 2025-8-24 21:16:32

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar I_am_rubbish
    **

    搬运于2025-08-24 21:16:31,当前版本为作者最后更新于2024-07-26 22:19:30,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    Source & Knowledge

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

    题目大意

    输入整数 nn,和一些 a,ba,b,希望你求出哪组 ba\frac{b}{a} 的值最大,输出其编号,如果出现最大值相同的情况则输出 aa 值较小的那组的编号。

    题目分析

    本题考察循环结构和分支的运用。

    我们设目前 ba\frac{b}{a} 的最大值是 maxnmaxn,与 maxnmaxn 对应的 aamaxamaxa,对应的店的编号为 ansans,根据题意对于每组输入的 ai,bia_i,b_i 有两种情况可能使答案更新,第一种是当前给出的 biai\frac{b_i}{a_i}maxnmaxn 大,第二种是当前给出的 biai\frac{b_i}{a_i}maxnmaxn 一样大,同时 aa 的值比 maxamaxa 小,那么我们需要将 maxnmaxn 更新为当前输入的 ai,bia_i,b_i 对应的 biai\frac{b_i}{a_i},将 maxamaxa 更新为当前输入的 aia_i,将 ansans 更新为 ii。在循环结束后输出 ansans 即可。

    值得注意的是因为题目种的 aabb 并不保证整除,所以 maxnmaxn 必须使用浮点数来计算,比较和存储。而对于浮点数比较大小我们不能直接使用两个等号来比较,而应该使用两数差的绝对值小于一个极小值的方法,注意到题面里 aia_ibib_i 的大小在 10910^9 以内,所以我们应将这个极小值设定为 101010^{-10} 左右来保证比较时不会因为精度问题导致错误。

    视频题解

    • 1

    信息

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