bzoj1628: [Usaco2007 Demo]City skyline(单调队列)

来源:互联网 发布:网络传输速率的单位 编辑:程序博客网 时间:2024/06/11 20:56

一看就好熟悉好熟悉啊!!!结果还是忘了。。。

类似这种题呢就用单调队列。例如这道题维护单调递增队列,当下一个比它高,就要新建一个楼,但要是比前一个矮且在前面出现过,那么这个楼就不用再建了。

#include<stdio.h>int n,l;int a[60000];int que[60000];int cnt;int main(){scanf("%d %d",&n,&l);for(int i=1;i<=n;i++){int v;scanf("%d %d",&v,&a[i]);}int ans=n;que[0]=0;for(int i=1;i<=n;i++){while(que[cnt]>a[i]&&cnt>0){cnt--;}if(que[cnt]!=a[i])que[++cnt]=a[i];else ans--;}printf("%d",ans);}


0 0
原创粉丝点击