码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构之单调栈单调队列模板

时间:2016-08-23 10:13:19      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

单调栈

技术分享
int rear=0;
for(int st=1;st<=N;st++)
{
       while(rear>0&&H[que[rear]]>=H[st])  --rear;
       if(rear==0) le[st]=0;
       else  le[st]=que[rear];
       que[++rear]=st;
 }
View Code

单调队列

技术分享
int que[maxn],elem[maxn];
int front=1,rear=0;
 for(int i=1;i<K;i++)
 {
        while(rear>=front&&elem[que[rear]]>=elem[i])  --rear;
        que[++rear]=i;
 }
 for(int i=K;i<=N;i++)
 {
        while(rear>=front&&elem[que[rear]]>=elem[i])  --rear;
        que[++rear]=i;
        while(que[front]+K<=i)  ++front;
        MIN[i-K]=elem[que[front]];
 }
View Code

 

数据结构之单调栈单调队列模板

标签:

原文地址:http://www.cnblogs.com/wust-ouyangli/p/5798144.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!