给定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. 初探百度大数据分析挖掘平台Jarvis
  2. 协程实现爬虫的例子主要优势在于充分利用IO时间去请求其他的url
  3. zTree树形菜单交互选项卡效果实现
  4. jQuery 开发环境搭配(转)
  5. 上手 Docker 容器,不应该是个问题
  6. 【项目相关】MVC中将WebUploader进行封装
  7. WinCEService项目
  8. Microsfot Office Communicator 聊天记录 外挂
  9. 2017美国数学建模MCM C题(大数据)翻译 “合作和导航”
  10. 经典论文之OverFeat
  11. 双目立体视觉2——双目成像原理
  12. 技术人员的等级划分和资质要求
  13. 大屯公司办公系统服务器地址,OA系统地址
  14. ADSL共享方法总结(转)
  15. 年终盘点:2021年中国科技的重大突破
  16. python中return返回值怎么累加_Python学习笔记函数之返回值和return语句
  17. 头像照片汇聚logo视频片头ae竖屏模板
  18. 产品设计杂谈--微信篇
  19. 群体遗传学--近交系数
  20. 拼写纠错(Spelling Correct)技术方案总结

热门文章

  1. LeetCode 1344. 时钟指针的夹角
  2. 在线教育:直播授课在这三个阶段有哪些要看的?
  3. 4GCPE工业路由器使用方法 4G转WiFi 网口 有线 串口 以太网
  4. 前行、生活、少年、爱情
  5. 数据结构与算法学习库——DSA
  6. 三极管基极下拉电阻作用
  7. 计算PI(π)的几种方法
  8. Java语言实现小学数学练习
  9. 代理软件cntlm之下载、安装、配置及使用
  10. 找不到 cl.exe 解决办法