Subsequence HDU
来源:互联网 发布:plsql随机抽取数据 编辑:程序博客网 时间:2024/06/08 10:59
题意:一个序列中的最大值和最小值的差在m和k之间,求这个序列的最大长度/
用单调队列。
#include <iostream>#include <cstring>#include <algorithm>#include <cstdio>#include <cmath>#include <queue>#include <vector>using namespace std;int a[100005];int minn[100005],maxx[100005];int main(){ int n,k,m; while(scanf("%d %d %d",&n,&m,&k)!=EOF){ for(int i=0;i<n;i++) scanf("%d",&a[i]); int front1=0,tail1=-1,front2=0,tail2=-1,i=0,ans=0; int bg=-1; for(i=0;i<n;i++) { while(front1<=tail1&&a[i]>a[maxx[tail1]]) tail1--; maxx[++tail1]=i; while(front2<=tail2&&a[i]<a[minn[tail2]]) tail2--; minn[++tail2]=i; while(a[maxx[front1]]-a[minn[front2]]>k) { bg=min(maxx[front1],minn[front2]); if(maxx[front1]==bg) front1++; if(minn[front2]==bg) front2++; } if(a[maxx[front1]]-a[minn[front2]]>=m) { ans=max(ans,i-bg); } } printf("%d\n",ans); } return 0;}
单调队列中的首元素是队列中最小的下标。
阅读全文
0 0
- Subsequence HDU
- hdu 1159 Common Subsequence
- HDU 1159 Common Subsequence
- HDU 3530 Subsequence
- HDU 1159 Common Subsequence
- HDU 1158 Common Subsequence
- hdu 1159 Common Subsequence
- HDU 1159 Common Subsequence
- HDU 1159 Common Subsequence
- hdu 1159 Common Subsequence
- hdu 1008 Common Subsequence
- Common Subsequence HDU dp
- hdu 1159 Common Subsequence
- hdu 1159 Common Subsequence
- hdu 3530 Subsequence
- Common Subsequence hdu 1159
- HDU 1159 Common Subsequence
- HDU 1159 Common Subsequence
- 固定宽度中,展示图片和旋转图片展示的实现姿势
- 一个 token 控件
- 软件测试方法------可以分为手工测试和自动化测试
- 笔记1--html基础知识
- 有关于office 2007 word和mathtpye 6.9之间容易报错的问题
- Subsequence HDU
- google 和 unixlite 的设计理念
- android进阶:理解RxJava2的调用原理
- 【Spring】Spring配置数据源的常用方式
- jira+Confluence Wiki安装
- 调通sina33m下的AP6212A0版本(分色排版)V1.0版本
- android stuido view视图可视化错误
- 微信JSSDK接口,previewImage
- 七牛python sdk 上传报SSL: CERTIFICATE_VERIFY_FAILED]