poj 2823 单调队列

时间:2022-09-22 18:17:11

思路:裸的单调队列。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define Maxn 1000010
using namespace std;
int n,k,que[Maxn],num[Maxn],head,rear;
int main()
{
int i,j,a;
while(scanf("%d%d",&n,&k)!=EOF)
{
head=;
rear=;
for(i=;i<=n;i++)
scanf("%d",num+i);
for(i=;i<=k;i++)
{
while(rear>=head&&num[que[rear]]>=num[i])
rear--;
que[++rear]=i;
}
printf("%d",num[que[head]]);
for(i=k+;i<=n;i++)
{
if(i-que[head]>=k)
head++;
while(rear>=head&&num[que[rear]]>=num[i])
rear--;
que[++rear]=i;
printf(" %d",num[que[head]]);
}
printf("\n");
head=;
rear=;
for(i=;i<=k;i++)
{
while(rear>=head&&num[que[rear]]<=num[i])
rear--;
que[++rear]=i;
}
printf("%d",num[que[head]]);
for(i=k+;i<=n;i++)
{
if(i-que[head]>=k)
head++;
while(rear>=head&&num[que[rear]]<=num[i])
rear--;
que[++rear]=i;
printf(" %d",num[que[head]]);
}
printf("\n");
}
return ;
}

poj 2823 单调队列的更多相关文章

  1. Sliding Window POJ - 2823 单调队列模板题

    Sliding Window POJ - 2823 单调队列模板题 题意 给出一个数列 并且给出一个数m 问每个连续的m中的最小\最大值是多少,并输出 思路 使用单调队列来写,拿最小值来举例 要求区间 ...

  2. caioj 1172 poj 2823 单调队列过渡题

    给定一个n个数的数列,从左至右输出每个长度为m的数列段内的最大数. 输入:第一行两个整数n和m( 1<= n <= 20 0000,m<=n).下来给出n个整数. 输出:一行一个整数 ...

  3. POJ 2823 单调队列入门水题

    最最基础的单调队列题目.一个单增一个单减.还是可以借此好好理解一下单调队列的. #include <stdio.h> #include <string.h> #include ...

  4. poj 2823单调队列模板题

    #include<stdio.h>//每次要吧生命值长的加入,吧生命用光的舍弃 #define N  1100000 int getmin[N],getmax[N],num[N],n,k, ...

  5. POJ 2838 单调队列

    Sliding Window Time Limit: 12000MS   Memory Limit: 65536K Total Submissions: 55309   Accepted: 15911 ...

  6. poj 3017 单调队列优化动态规划

    思路:dp[i]=min{dp[j]+max(num[j+1]...num[i])},其中sum[i]-sum[j]<=m. 那么我们需要用单调队列维护j到i的最大值. #include< ...

  7. poj 2373 单调队列优化背包

    思路:我们用单调队列保存2*b<=i-j<=2*a中的最大值.那么队列头就是最大值,如果队头的标号小于i-2*b的话,就出队,后面的肯定用不到它了. #include<iostrea ...

  8. POJ 3017 单调队列dp

    Cut the Sequence Time Limit: 2000MS   Memory Limit: 131072K Total Submissions: 8764   Accepted: 2576 ...

  9. POJ 1821 单调队列&plus;dp

    题目大意:有K个工人,有n个墙,现在要给墙涂色.然后每个工人坐在Si上,他能刷的最大范围是Li,且必须是一个连续子区间,而且必须过Si,他刷完后能获得Pi钱 思路:定义dp[i][j]表示前i个人,涂 ...

随机推荐

  1. iBatis in 语句参数传入方法

    刚刚开始在工作中用到iBatis 在用到in去查询或者删除 我本来是传递一个String的参数,但是总是报以下的错误

  2. 改变Chrome浏览器主程序&lowbar;缓存&lowbar;个人信息路径

      改变Chrome浏览器缓存_个人信息路径(亲测) actionx2上传于2012-10-26|(7人评价)|3077人阅读|41次下载|文档简介|举报文档    在手机打开   改变 Chrom ...

  3. java类中serialversionuid 作用 是什么&quest;举个例子说明

    serialVersionUID适用于Java的序列化机制.简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的.在进行反序列化时,JVM会把传来的字节流中的 ...

  4. 反汇编动态追踪工具Ollydbg&period; ALD&comma;ddd&comma;dbg&comma;edb&period;&period;&period;

    Ollydbg 通常称作OD,是反汇编工作的常用工具,吾爱破解OD附带了118脱壳脚本和各种插件,功能非常强大,基本上不需要再附加安装其它插件了. 对OD的窗口签名进行了更改,从而避免被针对性检测 修 ...

  5. 如何把UIView转成UIImage,解决模糊失真问题

    最近工作中,遇到一个需求,需要把一个UIView对象转成UIImage对象显示.经过网络搜索,找到如下答案: ? 1 2 3 4 5 6 7 8 -(UIImage*)convertViewToIma ...

  6. Python入门-数据类型

    一.变量 1)变量定义 name = 100(name是变量名 = 号是赋值号100是变量的值) 2)变量赋值 直接赋值 a=1 链式赋值  a=b=c=1 序列解包赋值  a,b,c = 1,2,3 ...

  7. 大数据处理架构hadoop

    Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构.它是基于java语言开发的,具有很好的跨平台特性,其核心是分布式文件系 ...

  8. py文件的运行

    安装过程及配置 安装过程准备: 下载好Python的安装程序后,开始安装,在进入安装界面后一定确保勾选将Python加入到系统环境变量的路径里.如图所示: 2 如果没有选取,那么按照下面的步骤进行操作 ...

  9. rabbitMQ学习1&colon;消息队列介绍与rabbitmq安装使用

    1. 什么是消息队列 生活里的消息队列,如同邮局的邮箱, 如果没邮箱的话, 邮件必须找到邮件那个人,递给他,才玩完成,那这个任务会处理的很麻烦,很慢,效率很低 但是如果有了邮箱, 邮件直接丢给邮箱,用 ...

  10. 服务器 apache配置https&comma;http强制跳转https&lpar;搭建http与https共存&rpar;

    公司linux服务器上的nginx的已经改成https了,现在还剩下一个windows云服务器没配置. 环境 windows wampserver2.5 64位 1.腾讯云申请的ssl 包含三个文件: ...