1 条题解

  • 0
    @ 2022-11-17 21:37:12

    20pt

    n4n^4 枚举每一盏灯的耗电量,然后按照公式计算每一个格子的亮度是否符合要求。

    70pt

    n3n^3 枚举三盏灯的耗电量,计算出此时每个格子的亮度,算出每个格子当前亮度与需求亮度的差值,这个差值由第四盏灯来填补。即枚举好三盏灯之后,我们可以 O(1) 算出第四盏灯的最低耗电量。

    100pt

    本题显然具有二分性,考虑二分答案。假设总共有 midmid 的耗电量可以分配给四盏灯,我们考虑如何分配:n2n^2 枚举对角线的两盏灯的耗电量,假设枚举的是左上角 aa 和右下角 bb。那么我们可以发现,右上角这个格子当前亮度为 $\lfloor \frac a 2 \rfloor + \lfloor \frac b 2 \rfloor$,左下角的格子的亮度也一样。我们可以算出这两个格子的亮度与需求的差值,再将 midabmid - a- b 的耗电量分配给这两盏灯。

    一种减少写代码细节的小技巧是:算出左下角格子的大致耗电量,然后用 for 循环在估计值的附近枚举即可,这样就不需要判断边界条件了。

    • 1

    信息

    ID
    1659
    时间
    1000ms
    内存
    512MiB
    难度
    10
    标签
    (无)
    递交数
    60
    已通过
    1
    上传者