1 条题解

  • 1
    @ 2024-6-11 12:10:58

    我们可以通过最后一个巨人的信息来推断所有牛的高度。具体步骤如下:

    1. 从最后一个巨人开始,根据h[n]知道它在所有巨人中排第h[n]+1小。
    2. 确定最后一个巨人的高度后,移除它,然后计算前一个巨人的高度。
    3. 重复以上过程:每次根据当前巨人的信息,确定其在剩余巨人中排第h[i]+1小的高度。
    4. 按照这个顺序,依次确定每一个巨人的高度,直到所有巨人的高度都确定。

    这样就能逐步推算出所有巨人的高度。 初始化每个身高的位置还没被选择的时候都是1。 使用树状数组维护前缀和,每当当前的身高被选择,我们就要去掉这个身高进行-1操作,然后进行统计前缀和的时候判断是否前面有k个巨人,这里可以进行二分查找前缀和的值为k的值,最后将结果输出。

    • 1

    信息

    ID
    812
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    24
    已通过
    11
    上传者