BZOJ 2096: [Poi2010]Pilots
Description
求一个最长的序列,最大值最小值之差不超过 \(k\) .
Sol
单调队列.
一个队列直接上就行..
Code
/**************************************************************
Problem: 2096
User: BeiYu
Language: C++
Result: Accepted
Time:4024 ms
Memory:71604 kb
****************************************************************/ #include <bits/stdc++.h>
using namespace std; #define debug(a) cout<<#a<<"="<<a<<" " typedef long long LL;
const int N = 3e6+50; LL n,k,ans;
LL a[N];
LL q[2][N],h[2],t[2],l; inline LL in(LL x=0,char ch=getchar()) { while(ch>'9' || ch<'0') ch=getchar();
while(ch>='0' && ch<='9') x=x*10+ch-'0',ch=getchar();return x; }
int main() {
k=in(),n=in();
for(int i=1;i<=n;i++) a[i]=in(); ans=1;
q[0][h[0]=t[0]=1]=1,q[1][h[1]=t[1]=1]=1,l=1; for(int i=2;i<=n;i++) {
while(h[0]<=t[0] && a[i]<a[q[0][t[0]]]) t[0]--;
q[0][++t[0]]=i; // cout<<i<<":"<<endl;
// for(int j=h[0];j<=t[0];j++) cout<<q[0][j]<<endl; while(h[1]<=t[1] && a[i]>a[q[1][t[1]]]) t[1]--;
q[1][++t[1]]=i; // for(int j=h[1];j<=t[1];j++) cout<<q[1][j]<<endl; for(;a[q[1][h[1]]]-a[q[0][h[0]]]>k;l++) {
if(q[0][h[0]]==l) h[0]++;
if(q[1][h[1]]==l) h[1]++;
}
ans=max(ans,i-l+1);
// debug(l),debug(ans)<<endl;
// cout<<"--------------------"<<endl;
}cout<<ans<<endl;
return 0;
}
BZOJ 2096: [Poi2010]Pilots的更多相关文章
- BZOJ 2096: [Poi2010]Pilots( set )
		
用个set维护就可以水过去...O(NlogN) 应该可以用单调队列O(N).... --------------------------------------------------------- ...
 - 【刷题】BZOJ 2096 [Poi2010]Pilots
		
Description Tz又耍畸形了!!他要当飞行员,他拿到了一个飞行员测试难度序列,他设定了一个难度差的最大值,在序列中他想找到一个最长的子串,任意两个难度差不会超过他设定的最大值.耍畸形一个人是 ...
 - BZOJ——2096: [Poi2010]Pilots
		
http://www.lydsy.com/JudgeOnline/problem.php?id=2096 Time Limit: 30 Sec Memory Limit: 162 MBSubmit: ...
 - BZOJ 2096: [Poi2010]Pilots 单调队列
		
Code: #include<bits/stdc++.h> #define maxn 4000000 using namespace std; void setIO(string s) { ...
 - BZOJ 2096([Poi2010]Pilots-单调队列-差值)
		
2096: [Poi2010]Pilots Time Limit: 30 Sec Memory Limit: 162 MB Submit: 190 Solved: 97 [ Submit][ ...
 - bzoj2096[Poi2010]Pilots 单调队列
		
2096: [Poi2010]Pilots Time Limit: 30 Sec Memory Limit: 162 MBSubmit: 983 Solved: 513[Submit][Statu ...
 - 【BZOJ2096】[Poi2010]Pilots 双指针+单调队列
		
[BZOJ2096][Poi2010]Pilots Description Tz又耍畸形了!!他要当飞行员,他拿到了一个飞行员测试难度序列,他设定了一个难度差的最大值,在序列中他想找到一个最长的子串, ...
 - BZOJ 2096 Pilots -  单调队列STL(deque)
		
传送门 分析: 单调队列:维护两个递增.递减的队列,每次都加入新元素并更新,如果最大值(递减队首)-最小值(递增队首) > k,那么将最左段更新为前面两者中较前的那一个,并弹掉.用deque可以 ...
 - BZOJ 2080: [Poi2010]Railway 双栈排序
		
2080: [Poi2010]Railway Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 140 Solved: 35[Submit][Statu ...
 
随机推荐
- [LeetCode] Number of Boomerangs 回旋镖的数量
			
Given n points in the plane that are all pairwise distinct, a "boomerang" is a tuple of po ...
 - FPGA与simulink联合实时环路系列——实验三 按键key
			
实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进 ...
 - Style样式
			
最重要的两个元素 :setter Trigger Style中的Setter setter是用来设置属性值的 <Style TargetType="{x:Type TextBox} ...
 - 红豆电信JS
			
http://www.hodo170.com/login.jsp 先定义window,再定义RSAUtils=window.RSAUtils || a.RSAUtils; /* * RSA, a su ...
 - Java的基本数据类型与转换
			
1.1 Java为什么需要保留基本数据类型 http://www.importnew.com/11915.html 基本数据类型对大多数业务相关或网络应用程序没有太大的用处,这些应用一般是采用客户端/ ...
 - 常用的shell脚本
			
[root@WEB1-live sh]# cat licai_fabu.sh #!/bin/bash pid=` ps -ef | grep java | grep '8011' | awk '{pr ...
 - vue.js 第五课
			
计算属性 1.基础例子 2.计算属性 vs $watch 3.计算 setter 4.计算属性开发实务demo 1.计算属性 computed( 电脑computer) (区别普通属性) 计算属性 ...
 - SpringMVC的小总结
			
---恢复内容开始--- 前言: springMVC是我接触的第一个框架,当时在学校学习的时候还是各种懂,最简单的springMVC框架的配置还是比较熟,后来工作之后,虽然主要用的确实是springM ...
 - Leetcode 365. Water and Jug Problem
			
可以想象有一个无限大的水罐,如果我们有两个杯子x和y,那么原来的问题等价于是否可以通过往里面注入或倒出水从而剩下z. z =? m*x + n*y 如果等式成立,那么z%gcd(x,y) == 0. ...
 - Bzoj1076 [SCOI2008]奖励关
			
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1935 Solved: 1053 Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一 ...