思路 原先想的是暴力加上剪枝,但是最坏复杂度还是1e8,果断T了。之后想到尺取法,只不过这种尺取法是二维的,只要稍加处理还是很好写的。 我们遍历长方形的上下界,然后尺取的求满足条件的最优解。 图中i指向长方形的上边界,j指向下边界。l,r指向的都是列,当r右移的时候sum+=3,当l右移的时候sum-=1,根据sum和K的大小比较确定l,r的移动方向当sum<K时,将r右移,否则,将l右移。对于l,r每移动一列sum的变化值我们可以对每一列根据空位进行前缀求和,这样变化值就可以o(1)的求出来(
s
u
m
[
j
]
[
r
]
−
s
u
m
[
i
]
[
r
]
或
者
s
u
m
[
j
]
[
l
]
−
s
u
m
[
i
]
[
l
]
sum[j][r]-sum[i][r]或者sum[j][l]-sum[i][l]
sum[j][r]−sum[i][r]或者sum[j][l]−sum[i][l])。单组样例的复杂度是o(1e6)