POJ3264/RMQ

原创 2016年08月29日 13:38:51

题目链接

/*
询问一段区间内的元素差值最大是多少,用RMQ维护一个最大值和一个最小值,相减即可。
*/
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=50000+5;
int h;
int dpmax[maxn][18];
int dpmin[maxn][18];
int n,q;
int k=0;
int RMQ(int l,int r)
{
    int k=0;
    while((1<<(k+1)<=(r-l+1)))
        k++;
    return max(dpmax[l][k],dpmax[r-(1<<k)+1][k])-min(dpmin[l][k],dpmin[r-(1<<k)+1][k]);
}
int main ()
{
    while(~scanf("%d%d",&n,&q))
    {

        /*
        if(k)
        {
            memset(dpmax,0,sizeof(dpmax));
            memset(dpmin,0,sizeof(dpmin));
        }
        */
        for(int i=0;i<n;i++)
        {
            scanf("%d",&h);
            dpmax[i][0]=h;
            dpmin[i][0]=h;
        }
        for(int k=1;(1<<k)<=n;k++)
            for(int i=0;i+(1<<k)-1<n;i++)
            {
                dpmax[i][k]=max(dpmax[i][k-1],dpmax[i+(1<<(k-1))][k-1]);
                dpmin[i][k]=min(dpmin[i][k-1],dpmin[i+(1<<(k-1))][k-1]);
            }
        int l,r;
        for(int i=0;i<q;i++)
        {
            scanf("%d%d",&l,&r);
            printf("%d\n",RMQ(l-1,r-1));
        }
        k++;
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

poj 3264 Balanced Lineup(RMQ求区间最值)

Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 29631   Accepted:...

POJ-3264 Balanced Lineup【RMQ】

题目链接:http://poj.org/problem?id=3264 题目大意: 一个农夫有N头牛,每头牛的高度不同,我们需要找出最高的牛和最低的牛的高度差。 解题思路: 我是用RMQ写的。...

RMQ的ST算法学习小记 Poj 3264 Balanced Lineup

RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j 主要方法及复杂度(处理复杂度和查询复杂度)如下: 1.线...

POJ 3264 Balanced Lineup (RMQ)

Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same ...

poj 3264 Balanced Lineup (RMQ))

Balanced Lineup Time Limit:5000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Sub...

poj3264(RMQ问题的线段树实现方法)

题目大意:第一行输入两个整数n,m;第二行输入一个n个数的序列,第三行开始的m行,每行两个数a,b,分别表示一个操作,对于每个操作,要求输出该区间的最小值和最大值。#include #include ...

线段树 ST算法 RMQ poj 3264 Balanced Lineup 解题报告

线段树 ST算法 RMQ poj 3264 Balanced Lineup 解题报告

poj 3264RMQ

Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same...

poj 3264 Balanced Lineup (简单 RMQ )

Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 29174   Accepted:...

poj 3264RMQ问题(线段树,ST算法)

Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 34766 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)