首页 > 其他 > 详细

单调队列模板

时间:2018-08-26 17:35:23      阅读:165      评论:0      收藏:0      [点我收藏+]
1 for(int i=1;i<=n;i++){
2     while(head<=tail&&q[head]<=i-k)head++;
3     while(head<=tail&&a[q[tail]]>=a[i])tail--;
4     q[++tail]=i;
5     if(i>=k)
6         cout<<a[q[head]]<<" ";
7 }

规定先维护head,head是来描述决策是否过时的变量,在此位置的变量处于极值,tail是来描述最后一位插入时应该放的位置,添加决策用tail,取决策使用head

单调队列模板

原文:https://www.cnblogs.com/saionjisekai/p/9537725.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!