思路:



偷懒用的STL

//By SiriusRen
#include <deque>
#include <cstdio>
using namespace std;
struct Node{int id,w;}jy;
deque<Node>qmin,qmax;
int n,k,xx,t,ans;
int main(){
scanf("%d%d",&k,&n);
for(int i=1;i<=n;i++){
scanf("%d",&xx);
jy.w=xx,jy.id=i;
while(!qmax.empty()&&qmax.back().w>xx)qmax.pop_back();
while(!qmin.empty()&&qmin.back().w<xx)qmin.pop_back();
qmin.push_back(jy),qmax.push_back(jy);
while(qmin.front().w-qmax.front().w>k){
if(qmin.front().id<qmax.front().id)t=qmin.front().id,qmin.pop_front();
else t=qmax.front().id,qmax.pop_front();
}
ans=max(ans,i-t);
}
printf("%d\n",ans);
}

BZOJ 2096 单调队列的更多相关文章

  1. bzoj 1047 单调队列

    做4次单调队列优化DP. /************************************************************** Problem: 1047 User: idy ...

  2. BZOJ 4385 单调队列

    思路: 对于每一个r 要找最小的符合条件的l最优 这时候就要找在这个区间中 d长度的和的最大值 用单调队列更新就好了 //By SiriusRen #include <cstdio> #i ...

  3. bzoj 3126 单调队列优化dp

    能转移的最左是其左边完整区间的最右左端点,最右是能覆盖它的最左左端点-1 #pragma GCC optimize ("O3") #include<cstdio> #i ...

  4. BZOJ 3831 单调队列DP

    思路: 这好像是我刚学单调性的时候做的题 (我是不会告诉你 我被这题教做人了的...) i-stk[head]>k 删队头 f[stk[tail]]>f[i]||(f[stk[tail]] ...

  5. BZOJ 1012 单调队列+二分

    思路: 维护一个单减的序列 序号是单增的 每回二分查找第一个比询问的大的值 我手懒 用得lower_bound //By SiriusRen #include <cstdio> #incl ...

  6. BZOJ 2096: [Poi2010]Pilots 单调队列

    Code: #include<bits/stdc++.h> #define maxn 4000000 using namespace std; void setIO(string s) { ...

  7. BZOJ 2096 Pilots - 单调队列STL(deque)

    传送门 分析: 单调队列:维护两个递增.递减的队列,每次都加入新元素并更新,如果最大值(递减队首)-最小值(递增队首) > k,那么将最左段更新为前面两者中较前的那一个,并弹掉.用deque可以 ...

  8. 【BZOJ 1233】 [Usaco2009Open]干草堆tower (单调队列优化DP)

    1233: [Usaco2009Open]干草堆tower Description 奶牛们讨厌黑暗. 为了调整牛棚顶的电灯的亮度,Bessie必须建一座干草堆使得她能够爬上去够到灯泡 .一共有N大包的 ...

  9. [BZOJ 1047] [HAOI2007] 理想的正方形 【单调队列】

    题目链接:BZOJ - 1047 题目分析 使用单调队列在 O(n^2) 的时间内求出每个 n * n 正方形的最大值,最小值.然后就可以直接统计答案了. 横向有 a 个单调队列(代码中是 Q[1] ...

随机推荐

  1. 杂项-Java:Spring

    ylbtech-杂项-Java:Spring Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.Spring是于200 ...

  2. 检测Nginx访问成功(状态码200)的IP及次数

    cat  access.log |awk '{print $1,$9}'|grep '200'|sort | uniq -c|awk '{print $2" "$1}'

  3. 在.NetCore2.0中使用Swagger

    一.新建.netCore webapi项目 二.安装swagger ,通过 Package Manager 控制台:Install-Package SwashBuckle.AspNetCore -Pr ...

  4. Uva 11324 The Largest Clique【强连通 DAG动规 spfa】

    白书上的例题 做一遍tarjan后,缩点,每一个scc节点的权为它的结点数,做一次DAG上的动规,求出路径上的最大点权和,就可以了 #include<cstdio> #include< ...

  5. Data type-数据类型

    操作方式.含义.存储方式. In computer science and computer programming, a data type or simply type is a classifi ...

  6. Oracle的分页查询及内联视图和函数处理

    1.Oracle的分页常用方式: select * from(select * ,ROWNUM num from table where ROWNUM<=20 ) where num>0; ...

  7. Hive 基本操作

    1.创建一个表 (字段表名不加引号‘,分隔符需要加引号) create table t1( id int ,name string ,hobby array<string> ,add ma ...

  8. 闭包、this、ES6特性

    声明一个函数 function fun1 函数内定义一个变量比如 var x=1 如果这时候在function内声明一个函数 fun2 fun2中对这个函数外面的x进行操作 这时候把fun2的地址付给 ...

  9. 使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务

    作者: Yi Ming Huang, 软件工程师, IBM Dong Fei Wu, 软件工程师, IBM Qing Guo, 软件工程师, IBM 出处: http://www.ibm.com/de ...

  10. 如何在React-Native上使用Typescript

    首先安装脚手架: $ yarn global add create-react-native-app 创建项目: create-react-native-app xxx 进入项目并启动: cd xxx ...