BZOJ1342 单调队列
来源:互联网 发布:征管基础数据核实表 编辑:程序博客网 时间:2024/06/16 15:07
两个单调队列 一个递减一个递增 做的时候如果当前点-队首大于m l++ 这样就保证了区间长度为m
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 1001000#define inf 0x3f3f3f3fusing namespace std;int id1[N],x1[N],l1,r1;int id2[N],x2[N],l2,r2;int n,m,p,s[N];int main(){ int i; scanf("%d%d%d",&n,&m,&p); for(i=1;i<=n;i++)scanf("%d",&s[i]); l1=l2=1,r1=r2=0; int flag=1; for(i=1;i<=n;i++) { while(l1<=r1&&i-id1[l1]>=m)l1++; while(l2<=r2&&i-id2[l2]>=m)l2++; while(l1<=r1&&s[i]>=x1[r1])r1--; while(l2<=r2&&s[i]<=x2[r2])r2--; id1[++r1]=id2[++r2]=i; x1[r1]=x2[r2]=s[i]; if(i>=m)if(x1[l1]-x2[l2]<=p) printf("%d\n",i-m+1),flag=0; } if(flag)puts("NONE"); return 0;}
阅读全文
1 0
- BZOJ1342 单调队列
- 【BZOJ1342】【Baltic2007】Sound静音问题 单调队列
- 单调栈 单调队列
- 单调队列
- 单调队列
- 单调队列
- 单调队列
- 单调队列
- 单调队列
- 单调队列
- 单调队列
- 单调队列
- 单调队列
- 单调队列
- 单调队列
- 单调队列
- 单调队列
- 单调队列
- 微服务之数据库服务-服务端(PHP+YII)
- 如何创建ue4的资源文件
- ubuntu14.04下CUDA8.0+cuDNN+tensorflow(with gpu support)安装教程
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- C++ 中vector的使用方法
- BZOJ1342 单调队列
- Java:输出学生信息(继承和多态)
- 计算圆和长方形的面积
- Python 爬虫
- Linux下的一些文件操作
- 各OJ分类
- RocketMQ实战(四)
- JESD204
- linux在contos中使用yum安装jdk