手写单调队列板子
发布日期:2021-06-30 10:13:25
浏览次数:3
分类:技术文章
本文共 553 字,大约阅读时间需要 1 分钟。
#includeusing namespace std;const int maxn=1000009;int q[maxn],p[maxn],head,tail;int a[maxn],n,k;int main(){ cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i]; head=1,tail=0; //为啥要这样呢?因为head要严格对应首元素,tail要严格对应尾元素, //所以当tail>=head时,说明有元素。而一开始队列为空,说一要这样赋值。其实这跟普通队列一样。 for(int i=1;i<=n;i++)//单调最大,队首元素最小 { while(head<=tail&&q[tail]>=a[i]) tail--;//排除比我早入队且值比我大的 q[++tail]=a[i],p[tail]=i; while(p[head]<=i-k) head++;//排除过时元素 if(i>=k) printf("%d ",q[head]);//在区间k中滑动 } head=1,tail=0; cout< =k) printf("%d ",q[head]); } return 0;}
相关好题
转载地址:https://issue-is-vegetable.blog.csdn.net/article/details/104519082 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月08日 11时32分50秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
捕捉键盘按键事件
2019-04-30
JavaScript中Date的toGMTString()方法
2019-04-30
新文章对应访问者上一次访问显示new图片
2019-04-30
Javascript删除添加节点Demo
2019-04-30
字符串逗号序列转表记录
2019-04-30
Oracle 查询当天、当周、当月和当季度的所有记录
2019-04-30
MySQL的登录和退出,相关参数的讲解
2019-04-30
Layui 数据表格toolbar中使用模板引擎templet,当前系统时间比较问题
2019-04-30
Mysql外键约束的要求
2019-04-30
LayUI中的时间日期控件,设置时间范围,过去的时间不能选择,只能选择未来的时间
2019-04-30
MySQL外键约束的参照操作
2019-04-30
文字过长显示省略号的一样简单解决方法,不用额外的其他框架
2019-04-30
Mysql 修改数据库,添加删除单列,添加删除多列,添加删除约束
2019-04-30
防止表单重复提交的一种方式
2019-04-30
Win10开机画圈圈没完没了?有这招绝对搞定
2019-04-30
Wi-Fi密码记不住怎么办?这条命令就搞定!
2019-04-30
layui日期时间段的设置,开始时间-结束时间
2019-04-30
被锁的U盘怎么抢救资料?
2019-04-30
Mysql的增删改查
2019-04-30
java.sql.SQLException: ORA-01810: 格式代码出现两次
2019-04-30