1 条题解

  • 0
    @ 2026-9-9 9:21:57

    题解

    思路

    固定倍数 k=(B+Y)/(A+X)≥1k=(B+Y)/(A+X)\ge1。

    做法

    为了使 X+YX+Y 最小,应取最小的可行 X=max⁡(0,⌈B/k⌉−A)X=\max(0,\lceil B/k\rceil-A),随后 Y=k(A+X)−BY=k(A+X)-B,于是可以在常数时间内评价一个 kk。

    直接枚举所有 kk 太慢。令 C=B−1C=B-1,则 ⌈B/k⌉=⌊C/k⌋+1\lceil B/k\rceil=\lfloor C/k\rfloor+1。对于 k≤⌈C⌉k\le\lceil\sqrt C\rceil 直接枚举;其余 kk 对应的商 q=⌊C/k⌋q=\lfloor C/k\rfloor 不超过 ⌈C⌉\lceil\sqrt C\rceil,而商固定时目标值在最小的 k=⌊C/(q+1)⌋+1k=\lfloor C/(q+1)\rfloor+1 处最优。再枚举这些小商即可。

    复杂度

    每组数据的时间复杂度为 O(B)O(\sqrt B),空间复杂度为 O(1)O(1)。

    • 1

    信息

    ID
    1669
    时间
    2000ms
    内存
    1024MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者