给定nnn k" style="position: relative;" tabindex="0" id="MathJax-Element-1601-Frame" class="MathJax">kkk和一个长度为nnn的序列,求最长的最大值最小值相差不超过k" style="position: relative;" tabindex="0" id="MathJax-Element-1603-Frame" class="MathJax">kkk的序列

第一行两个有空格隔开的整数kkk (0&lt;=k&lt;=2000,000,000)" style="position: relative;" tabindex="0" id="MathJax-Element-1605-Frame" class="MathJax">(0<=k<=2000,000,000)(0<=k<=2000,000,000)(0,nnn (1&lt;=n&lt;=3000,000)" style="position: relative;" tabindex="0" id="MathJax-Element-1607-Frame" class="MathJax">(1<=n<=3000,000)(1<=n<=3000,000)(1,kkk代表设定的最大值,n" style="position: relative;" tabindex="0" id="MathJax-Element-1609-Frame" class="MathJax">nnn代表序列的长度。第二行为 nnn 个由空格隔开的整数ai" style="position: relative;" tabindex="0" id="MathJax-Element-1611-Frame" class="MathJax">aiaiai (1<=ai<=2000,000,000)(1<=ai<=2000,000,000)(1 表示序列。

看数据范围显然是个线性复杂度的题目,并不是比他大比他小的问题并不是单调栈。
于是想到了two−pointertwo−pointertwo-pointer 记录指针扫到的区间中最大值和最小值检验合法性,然后把 RR<script id="MathJax-Element-1614" type="math/tex">R</script> 指针右移。 一旦不合法移动左指针 。我们现在解决的是最大最小值的问题,因为区间连续,所以可以单调队列维护。

#include<bits/stdc++.h>
using namespace std;const int MAXN=3e6+5;
const int INF=2e9+7;
int a[MAXN],n,k;struct mqueup{deque<int>m,q;inline void push(int x){q.push_back(x);while(m.size()&&x>m.back())m.pop_back();m.push_back(x);}inline void pop(){int v=q.front();q.pop_front(); if(v==m.front())m.pop_front();}inline int top(){return m.front();}inline int size(){return q.size();}
}BIG;struct mquedown{deque<int>m,q;inline void push(int x){q.push_back(x);while(m.size()&&x<m.back())m.pop_back();m.push_back(x);}inline void pop(){int v=q.front();q.pop_front();if(v==m.front())m.pop_front();}inline int top(){return m.front();}inline int size(){return q.size();}
}SMALL;void PUSH(int x){BIG.push(x);SMALL.push(x);
}void POP(){BIG.pop();SMALL.pop();
}int querymax(){return BIG.top();
}int querymin(){return SMALL.top();
}bool check(){if(!BIG.size())return 1;if(querymax()-querymin()<=k)return 1;return 0;
}void moveleft(){while(!check())POP();
}int r=0,ans=0;
void moveright(){++r;PUSH(a[r]);moveleft();
}int main(){scanf("%d%d",&k,&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}while(r<n){moveright();ans=max(ans,BIG.size());}cout<<ans<<endl;return 0;
}

[POI2010]PIL-Pilots相关推荐

  1. bzoj2096[Poi2010]Pilots*

    bzoj2096[Poi2010]Pilots 题意: 给一个序列和一个最大值,要求找一个最长连续子串,使里面任意两个数相差不超过这个最大值.序列大小≤3000000 题解: 用两个单调队列,分别维护 ...

  2. 机器学习四剑客4——PIL

    PIL库是一个具有强大图像处理能力的第三方库 在命令行下的安装方法:pip install pillow 在使用过程中的引入方法:from PIL import Image Image 是 PIL 库 ...

  3. 在Ubuntu 16.04.5 LTS上利用python 2.7中的PIL模块智能等比例压缩过大的图片集实操

    需求 有时候自媒体创作写稿时难免遇到大规模压缩某个文件夹内的图片的情况,通常我们可以使用一些批量压缩的工具来处理,但我觉得,这是小白的做法,对于我们这些经验丰富的老司机来说,使用代码来处理,将是一件高 ...

  4. 在Ubuntu 16.04.5 LTS上利用python中的PIL模块压缩一百多兆的单张图片实操

    在前面的博文中,我将300多张电影海报拼接为了一张103MB的巨幅图片,我想拿它做电脑桌面(1080P),但是这么多的图片,存储和加载是个麻烦事儿,需要将它压缩到几MB大小. 在Ubuntu 16.0 ...

  5. ERROR: from PIL import Image ImportError: No module named PIL

    ERROR: from PIL import Image ImportError: No module named PIL 到 http://www.pythonware.com/products/p ...

  6. Python3中Pillow(PIL)介绍

          PIL全称为Python Imaging Library,是Python中的免费开源图像处理库.PIL的最新版本为1.1.7,于2009年9月发布,支持Python的最高版本到2.7.原始 ...

  7. 【笔记】PIL 中的 Image 模块

    Image 模块提供了一个同名类(Image),也提供了一些工厂函数,包括从文件中载入图片和创建新图片.例如,以下的脚本先载入一幅图片,将它旋转 45 度角,并显示出来: 1 >>> ...

  8. Python图片处理PIL/pillow/生成验证码/出现KeyError: 和The _imagingft C module is not installed...

    近期在用Python开发自己的博客.须要用到Python生成验证码,当然肯定要用到Python的图形处理库PIL,由于我用的是windows. 所以在安装好pil之后就開始写,就依照题目所说出现了Th ...

  9. python--安装PIL

    PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,但API却非常简单易用. 安装PIL 在Debian/Ubuntu Linux ...

  10. 自动驾驶测试:MIL、SIL、PIL、HIL

    1. 基于模型的设计 基于模型的设计方法(MBD,Model Based Design)采用图形化设计和自动化代码生成,不同于基于手工编程和纸上规范的传统编程方法,具有如下优点: 在统一的开发测试平台 ...

最新文章

  1. python算法题_Python算法题
  2. 数字资产云交易所搭建开发平台,云交易的优势在哪?
  3. Android FM模块学习之一 FM启动流程
  4. 6、Hive的特殊分隔符处理
  5. linux命令ping
  6. html _ 提取html片段内的纯文本
  7. PL/SQL编程基础(一):PL/SQL语法简介(匿名PL/SQL块)
  8. python学习高级篇(part8)--类对象的特殊方法
  9. sql查询去除视图重复项_如何使用SQL查询视图,Postico使用技巧分享
  10. mysql并发参数查看_MySQL Innodb 并发涉及参数
  11. Java 的强引用、弱引用、软引用、虚引用
  12. SQL Server生成含有数据的脚本文件
  13. uniappd的web-view组件无法动态加载本地html文件的解决办法
  14. 【SQL】数据库模糊查询
  15. 小米笔记本pro黑苹果原厂intel蓝牙亲测可用!!
  16. YOLOV7改进--添加CBAM注意力机制
  17. 搞Java的年薪 40W 是什么水平? 1
  18. DNS服务器无响应win10系统,Win10上的DNS服务器无响应:这是如何解决它
  19. 【ECharts学习】—实现中国地图
  20. ArcGIS中矢量裁剪栅格影像及影像合并【附练习数据下载】

热门文章

  1. netty实战-自定义解码器处理半包消息
  2. 乐视体育取消欧冠半决赛直播 欧冠版权或生变数
  3. 读书笔记《进化的力量:刘润年度演讲1》
  4. Linux中的sda, sdb, sdc, sda1, sda2含义
  5. 华为平板如何换计算机的皮肤,走出护肤误区,华为镜子携手皮肤专家化解护肤难题...
  6. 上海计算机考试分值,上海高考科目及分值
  7. 淘宝小部件在 2021 双十一中的规模化应用
  8. android 家庭理财软件 需求分析,基于Android的家庭理财通的设计与实现.docx
  9. 01-赵志勇机器学习-Logistics_Regression-train
  10. 侯捷C++视频资源全集 | 百度网盘下载