//使用rmq办,ma[i][j],同i作为一个起点2^j阵列的最大长度值

//启动枚举问最长的子列

//枚举的最大长度2^(j-1)和2^(j)z之间

//然后在该范围内找到

#include<iostream>

#include<cstdio>

#include<cstring>

#include<cmath>

using namespace std;

const int maxn=100010;





int a[maxn],ma[maxn][25],mi[maxn][25];

int n,m,k;

void rmq()

{

    for(int i=1;i<=n;i++)

    ma[i][0]=mi[i][0]=a[i];

    for(int j=1;j<=log((double)(n))/log(2.0);j++)

       for(int i=1;i+(1<<j)-1<=n;i++)

       {

           ma[i][j]=max(ma[i][j-1],ma[i+(1<<(j-1))][j-1]);

           mi[i][j]=min(mi[i][j-1],mi[i+(1<<(j-1))][j-1]);

       }

}





int query(int a,int b)

{

    int k=(int)(log((double)(b-a+1))/log(2.0));

    return max(ma[a][k],ma[b-(1<<(k))+1][k])-min(mi[a][k],mi[b-(1<<(k))+1][k]);

}





int Maxlen(int st,int pos)

{

   int j;

   for(j=0;(pos+(1<<j))<=n;j++)

   {

       int tmp=query(st,pos+(1<<j));

       if(tmp>k)

       {

           if(j==0)

           return pos;

           return Maxlen(st,pos+(1<<(j-1)));

       }

   }

   if((pos+(1<<(j-1))==n))

   return n;

   else

   return Maxlen(st,pos+(1<<(j-1)));

}

int main()

{

   // freopen("in.txt","r",stdin);

    while(scanf("%d%d%d",&n,&m,&k)!=EOF)

    {

        for(int i=1;i<=n;i++)

        scanf("%d",&a[i]);

        rmq();

        if(query(1,n)<m)

        {

            printf("0\n");

            continue;

        }

        int ans=0;

        for(int i=1;i<=n;i++)

        {

           int tmp=Maxlen(i,i-1);

           ans=max(ans,tmp-i+1);

           if(tmp==n||((n-i+1)<=ans))

           break;

        }

       printf("%d\n",ans);

    }

    return 0;

}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

hdu3530Subsequence rmq的更多相关文章

  1. BZOJ 3489: A simple rmq problem

    3489: A simple rmq problem Time Limit: 40 Sec  Memory Limit: 600 MBSubmit: 1594  Solved: 520[Submit] ...

  2. UVA 11235Frequent values(RMQ)

    训练指南P198 题意:给出一个非降序排列的整数数组a1, a2…… an,你的任务是对于一系列询问(i,j),回答ai, ai+1 ……aj 中出现的次数最多的次数 这题不仅学到了rmq的应用还学到 ...

  3. 51nod1174(RMQ)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1174 题意:中文题诶- 思路:RMQ模板题 关于RMQ: h ...

  4. 2016 ACM/ICPC Asia Regional Dalian Online 1008 Function 二分+RMQ

    Time Limit: 7000/3500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submissio ...

  5. Gym 100646 F Tanks a Lot RMQ

    Problem F: Tanks a Lot Imagine you have a car with a very large gas tank - large enough to hold what ...

  6. (RMQ版)LCA注意要点

    inline int lca(int x,int y){ if(x>y) swap(x,y); ]][x]]<h[rmq[log[y-x+]][y-near[y-x+]+]])? rmq[ ...

  7. 洛谷P2412 查单词 [trie树 RMQ]

    题目背景 滚粗了的HansBug在收拾旧英语书,然而他发现了什么奇妙的东西. 题目描述 udp2.T3如果遇到相同的字符串,输出后面的 蒟蒻HansBug在一本英语书里面找到了一个单词表,包含N个单词 ...

  8. POJ3368Frequent values[RMQ 游程编码]

    Frequent values Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 17581   Accepted: 6346 ...

  9. [tem]RMQ(st)

    倍增思想 代码中有两个测试 #include <iostream> #include <cmath> using namespace std; const int N=1e5; ...

随机推荐

  1. Android获取设备採用的时间制式(12小时制式或24小时制式)

    /** * 获取设备採用的时间制式(12小时制式或者24小时制式) * 注意: * 在模拟器上获取的时间制式为空 */ private void getTime_12_24(Context conte ...

  2. Spire.XLS for .NET 測评

         有一位朋友推荐了我 Spire.Office (官网:http://www.e-iceblue.com/) -- 基于.NET的办公软件库,说不错. 究竟怎样呢?仅仅有亲測一下才干知道了. ...

  3. [Cocos2d-x]博客推荐

    推荐一下大神们的博客: JackyStudio: http://blog.csdn.net/jackyvincefu/article/category/1591201/3 老G的小屋: http:// ...

  4. 数据结构《17》---- 自己主动补齐之《二》----Ternary Search Tree

    一. 序言 上一篇文章中,给出了 trie 树的一个实现. 能够看到,trie 树有一个巨大的弊病,内存占用过大. 本文给出还有一种数据结构来解决上述问题---- Ternary Search Tre ...

  5. 扯谈网络编程之自己实现ping

    ping是基于ICMP(Internet Control Message Protocol)协议实现的.而ICMP协议是在IP层实现的. ping实际上是发起者发送一个Echo Request(typ ...

  6. GitHub 优秀Android 开源项目

    阅读目录 1.Xabber客户端 2.oschina客户端 3.手机安全管家 4.星座连萌 5.玲闹铃 6.魔乐盒 7.PWP日历 8.Apollo音乐播放器 9.夏普名片识别 10.高仿人人网 11 ...

  7. 图像特征提取方法:Bag-of-words

    Bag-of-words简单介绍 最初的Bag-of-words ,也叫做"词袋",在信息检索中,Bag-of-words model假定对于一个文本,忽略其词序和语法,句法,将其 ...

  8. sdbntrjm57k

    http://www.zhihu.com/collection/24337307 http://www.zhihu.com/collection/24337259 http://www.zhihu.c ...

  9. Session为空的一种原因

    在维护一份比较老的代码,想改为ajax调用,然后就添加了一个一般处理程序文件,也就是以.ashx结尾的文件,一切都正常,但发现session一直为空,很奇怪 基本的代码如下: public class ...

  10. hdu1254(bfs+dfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1254 分析: 真正移动的是箱子,但是要移动箱子需要满足几个条件. 1.移动方向上没有障碍. 2.箱子后 ...