第三题没有AC,不过考虑了一下有点想法😶 1.输入mxn的时候记录最大高度,然后计算铺满最大高度H需要的水量L 2.q查询的时候,水量l>=L,可以直接计算得到=H+(l-L)/(mn) 3.对于水量l<L,首先用二分法,假定现在计算高度h的水量,可以通过遍历mxn的数组得到水量L1,然后根据L1和l的关系决定收敛的方向,最终得到误差内某水量l对应的高度h 怎么计算的题目给了公式需要自己推一下 ---------------------------------------- 上面应该能部分解决,如果想AC需要优化,因为每次二分的时间复杂度都是O(mn) 4.建立map<水量l,高度h>记忆化 首先加入下界<0,0>和上界<L,H>(1的时候算的) 利用.lower_bound()找到某个水量l1最接近的左右两边,然后这两边作为二分的上下界减少二分的次数,同时二分过程中不断的将计算得到的<水量l,高度h>映射加入map