[雅礼集训 2017 Day2]水箱
水箱
题解
其实还是蛮水的一道题。
我们很容易发现,如果全选没水的条件,一定是一组满足条件的解。关键是我们要如何选择有水的条件。
容易发现,对于一个有水条件,它一定会使包含它的一段连续区间内高度小于它的地方都有水。而在其区间内,没有它高的有水条件,当它满足时,一定也能被满足,而没有它高的无水条件,当它满足时,一定不能被满足。
我们先考虑如何求出这一段区间。这一段区间内一定不包含比当前水位置高的墙,我们可以用一棵线段树,在其前后位置的线段树上二分找出左右第一堵比它高的墙。时间复杂度为 O ( l o g n ) O(log\, n)

浙公网安备 33010602011771号