传送门biu~
如果从左至右贴海报,那么只有一种情况可以使某个矩形不用贴海报也可以被覆盖:这个矩形与之前某个矩形的高度相同且这两个矩形之间没有比它们矮的矩形。用单调栈来维护即可,时间复杂度
O(n)
O
(
n
)
。
#include<bits/stdc++.h>
using namespace std;
int n,ans,a[250005],top;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;++i){
int x;
scanf("%d%d",&x,&x);
while(top && a[top]>x) --top;
if(a[top]!=x){
a[++top]=x;
++ans;
}
}
printf("%d\n",ans);
return 0;
}