题目大意:给你n个数, 让你问你最长的满足要求的区间有多长,区间要求:MAX - MIN >= m && MAX - MIN <= k

思路:单调队列维护递增和递减,在加入数值的过程中更新答案。

  1. #include<bits/stdc++.h>
  2. #define LL long long
  3. #define fi first
  4. #define se second
  5. #define mk make_pair
  6. #define pii pair<int,int>
  7. #define piii pair<int, pair<int,int> >
  8.  
  9. using namespace std;
  10.  
  11. const int N = 1e5 + ;
  12. const int M = + ;
  13. const int inf = 0x3f3f3f3f;
  14. const LL INF = 0x3f3f3f3f3f3f3f3f;
  15. const int mod = 1e9 + ;
  16. const double eps = 1e-;
  17.  
  18. int n, m, k, head1, head2, rear1, rear2;
  19. int sk1[N], sk2[N], a[N];
  20.  
  21. void init() {
  22. head1 = head2 = ;
  23. rear1 = rear2 = ;
  24. }
  25.  
  26. int main() {
  27. while(scanf("%d%d%d", &n, &m, &k) != EOF) {
  28.  
  29. init();
  30.  
  31. for(int i = ; i <= n; i++) {
  32. scanf("%d", &a[i]);
  33. }
  34.  
  35. int ans = , now = ;
  36. for(int i = ; i <= n; i++) {
  37. while(head1 < rear1 && a[sk1[rear1 - ]] < a[i]) rear1--;
  38. while(head2 < rear2 && a[sk2[rear2 - ]] > a[i]) rear2--;
  39. sk1[rear1++] = i;
  40. sk2[rear2++] = i;
  41.  
  42. while(head1 < rear1 && head2 < rear2 && a[sk1[head1]] - a[sk2[head2]] > k) {
  43.  
  44. if(sk1[head1] < sk2[head2]) now = sk1[head1++] + ;
  45. else now = sk2[head2++] + ;
  46. }
  47.  
  48. if(head2 < rear2 && head2 < rear2 && a[sk1[head1]] - a[sk2[head2]] >= m) {
  49.  
  50. ans = max(ans, i - now + );
  51. }
  52. }
  53.  
  54. printf("%d\n", ans);
  55. }
  56. return ;
  57. }
  58. /*
  59. */

HDU 3530 单调队列的更多相关文章

  1. hdu 3530 单调队列最值

    /** HDU 3530 单调队列的应用 题意: 给定一段序列,求出最长的一段子序列使得该子序列中最大最小只差x满足m<=x<=k. 解题思路: 建立两个单调队列分别递增和递减维护(头尾删 ...

  2. HDU 3507 单调队列 斜率优化

    斜率优化的模板题 给出n个数以及M,你可以将这些数划分成几个区间,每个区间的值是里面数的和的平方+M,问所有区间值总和最小是多少. 如果不考虑平方,那么我们显然可以使用队列维护单调性,优化DP的线性方 ...

  3. hdu 3401 单调队列优化DP

    Trade Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status ...

  4. hdu 3415(单调队列) Max Sum of Max-K-sub-sequence

    题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3415 大意是给出一个有n个数字的环状序列,让你求一个和最大的连续子序列.这个连续子序列的长度小于等于k. ...

  5. hdu 3401 单调队列优化+dp

    http://acm.hdu.edu.cn/showproblem.php?pid=3401 Trade Time Limit: 2000/1000 MS (Java/Others)    Memor ...

  6. hdu 3415 单调队列

    Max Sum of Max-K-sub-sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  7. HDU 2191 - 单调队列优化多重背包

    题目: 传送门呀传送门~ Problem Description 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种 ...

  8. HDU 4122 单调队列

    转载自:http://blog.csdn.net/lvshubao1314/article/details/46910271 DES :给出n个订单和m是商店的开放时间.然后n行给出n个订单的信息.然 ...

  9. HDU 3530Subsequence(单调队列)

    题意 题目链接 给出$n$个数,找出最长的区间,使得区间中最大数$-$最小数 $>= m$ 且$<= k$ Sol 考虑维护两个单调队列. 一个维护$1 - i$的最大值,一个维护$1 - ...

随机推荐

  1. bzoj千题计划146:bzoj3295: [Cqoi2011]动态逆序对

    http://www.lydsy.com/JudgeOnline/problem.php?id=3295 正着删除看做倒着添加 对答案有贡献的数对满足以下3个条件: 出现时间:i<=j 权值大小 ...

  2. Openssh版本升级(Centos6.7)

    实现前提公司服务器需要进行安全测评,扫描漏洞的设备扫出了关于 openssh 漏洞,主要是因为 openssh的当前版本为5.3,版本低了,而yum最新的openssh也只是5.3,没办法只能到 rp ...

  3. 在IDEA中实战Git 实用

    工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小袁 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三:小 ...

  4. List(JDK1.7)(1)

    java.util包. 与Set不同, List允许重复的元素.即 e1.equals(e2). 部分方法定义 int size(); 返回列表中元素的个数,如果超过Integer.MAX_VALUE ...

  5. Is it possible to create @Around Aspect for feign.Client

    https://github.com/spring-cloud/spring-cloud-openfeign/issues/59 看到github 有人问这个问题,做了个示例: import org. ...

  6. LintCode 35: Reverse Linked List

    LintCode 35: Reverse Linked List 题目描述 翻转一个链表. 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1 ...

  7. Linux基础-编译安装Python

    终于涉及一点儿专业的了,说实话,对于目前的我难度还是挺大的,这句话送给未来的自己 挑战开始: 首先了解一下Python3.6,底层是由c++开发的,所以在linux下需要C++的支持,必然少不了gcc ...

  8. 关于禁用"请停用以开发者模式运行的扩展程序"提示

    有兴趣研究谷歌浏览器扩展开发,但每次开启高版本chrome都会有烦人的提示 因为我用的360急速,目前还有提示,但使用原生chrome连插件都给删了,无语

  9. JS设计模式——7.工厂模式(概念)

    工厂模式 本章讨论两种工厂模式: 简单工厂模式 使用一个类(通常是一个单体)来生成实例. 使用场景:假设你想开几个自行车商店(创建自行车实例,组装它,清洗它,出售它),每个店都有几种型号的自行车出售. ...

  10. css的盒模型手机端兼容写法应该是啥样的呢?

    前言:刚刚接触css3的盒模型,感觉对于解决水平垂直居中.固定宽度/高度和可变宽度/高度同时存在这样的问题很有效.但是最近在看一个腾讯手机端框架(Frozen UI )的时候发现一个很神奇的多行文字截 ...