题目链接:###

传送门走这里

题目分析:###

感觉不是很难啊……不像是蓝题(AC量也不像)恶意评分?

少打了一个+1调了半天,就这样居然还能过60pts?我思路和题解第一篇高度重合是什么鬼啊,太过分了吧本来还想水篇题解的

单调队列分别维护序列最大值和最小值,如果极差\(>k\)的话就扔掉最大值和最小值里面靠前的那一个,因为你不能不改动这个连续子序列的左端点而从中间丢掉一个值。同时记录下这个序列的左端点\(last_l\)是扔掉的那个值的编号+1(只要丢掉这个值,剩下的序列就合法了),丢完之后更新\(ans=max(ans,i-last_l+1)\)即可。时间复杂度为\(O(n)\)。

其实是一道不错的单调队列题。

题做少了看什么题都感觉眉清目秀的

代码:###

#include<bits/stdc++.h>
#define N (3000000+5)
using namespace std;
inline int read(){
int cnt=0,f=1;char c;
c=getchar();
while(!isdigit(c)){
if(c=='-')f=-f;
c=getchar();
}
while(isdigit(c)){
cnt=cnt*10+c-'0';
c=getchar();
}
return cnt*f;
}
int n,k,l1=1,r1=0,x,ans,l2=1,r2=0;
int last_l=1;
struct node{
int dat;int pos;
} q1[N],q2[N];
int main(){
k=read();n=read();
if(n==1) {
printf("1");
return 0;
}
for(register int i=1;i<=n;i++){
x=read();
while(l1<=r1&&q1[r1].dat>x)r1--;
q1[++r1].dat=x;q1[r1].pos=i;
while(l2<=r2&&q2[r2].dat<x)r2--;
q2[++r2].dat=x;q2[r2].pos=i;
while(q2[l2].dat-q1[l1].dat>k){
if(q1[l1].pos<q2[l2].pos&&l1<=r1){
last_l=q1[l1].pos+1;
l1++;
}
if(q1[l1].pos>=q2[l2].pos&&l2<=r2){
last_l=q2[l2].pos+1;
l2++;
}
}
if(i-last_l+1>ans)ans=i-last_l+1;
}
printf("%d",ans);
return 0;
}

最新文章

  1. Ubuntu/linux 有关权限修改的命令
  2. Web App适配不同屏幕的几点建议
  3. Java 第17章 继承
  4. 3到6年的.NETer应该掌握哪些知识?
  5. Java Servlet(二):servlet配置及生命周期相关(jdk7+tomcat7+eclipse)
  6. 编写spring配置文件时,不能出现帮助信息
  7. Android中关于JNI 的学习(三)在JNI层訪问Java端对象
  8. mysql sql_cache缓存使用
  9. 1.使用C++封装一个链表类LinkList
  10. SAP MM ME29N 试图取消审批报错 - Document has already been outputed(function not possible) -
  11. [Android] Android 手机下 仿 今日头条 新闻客户端
  12. [Swift]LeetCode721. 账户合并 | Accounts Merge
  13. (73)Wangdao.com第十二天_JavaScript consol 对象与控制台
  14. Canvas Demo
  15. Android为TV端助力 EventBus.getDefault()开源框架
  16. ramfs的两种制作方法
  17. 《Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks》
  18. Java知多少(79)哈希表及其应用
  19. 【2017-03-28】JS基础、DOM操作
  20. Linux进程间的通信方式和原理

热门文章

  1. Java程序员从笨鸟到菜鸟之(十五)Html基础积累总结(下)
  2. NettyIO
  3. 浅谈 React、Flux 与 Redux
  4. [转]GPS NEMA 0183协议
  5. XMU C语言程序设计实践(3)
  6. 程序中引入库文件的头文件 编译时并不需要显示的用gcc去链接他的库文件 why?
  7. springboot 多数据源(三种数据库连接池--JDBC,dbcp2,Druid)
  8. String常量池
  9. bzoj3727: PA2014 Final Zadanie
  10. YTU 2866: 结构体---点坐标结构体