POJ 3264 Balanced Lineup(RMQ)

原创 2016年05月30日 12:47:35

题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27676#problem/A

代码:

#include<stdio.h>
#include<string.h>
#include<vector>
#include<algorithm>
const int maxn=50000+5;
int dmaxn[maxn][20];
int dminn[maxn][20];
using namespace std;
void RMQ_init(const vector<int>& A)
{
    int n=A.size();
    for(int i=0;i<n;i++)dmaxn[i][0]=A[i];
    for(int j=1;(1<<j)<=n;j++)
    {
        for(int i=0;i+(1<<j)-1<n;i++)
        {
            dmaxn[i][j]=max(dmaxn[i][j-1],dmaxn[i+(1<<(j-1))][j-1]);
        }
    }
    n=A.size();
    for(int i=0;i<n;i++)dminn[i][0]=A[i];
    for(int j=1;(1<<j)<=n;j++)
    {
        for(int i=0;i+(1<<j)-1<n;i++)
        {
            dminn[i][j]=min(dminn[i][j-1],dminn[i+(1<<(j-1))][j-1]);
        }
    }
}
int RMQ(int L,int R)
{
    int k=0;
    while(1<<(k+1)<=R-L+1) k++;
    return max(dmaxn[L][k],dmaxn[R-(1<<k)+1][k])-min(dminn[L][k],dminn[R-(1<<k)+1][k]);
}
int main()
{
    int n,q;
    scanf("%d%d",&n,&q);
    vector<int>k;
    for(int i=0;i<n;i++)
    {
        int x;
        scanf("%d",&x);
        k.push_back(x);
    }
    RMQ_init(k);
    for(int i=0;i<q;i++)
    {
        int x,y;
        scanf("%d%d",&x,&y);
        printf("%d\n",RMQ(x-1,y-1));
    }
}

POJ 3264 Balanced Lineup 【RMQ求区间最值模板题】

Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 26435   Accepted:...
  • Cfreezhan
  • Cfreezhan
  • 2013年03月24日 20:34
  • 1360

POJ 3264 解题报告 RMQ 问题 ST算法

这道题可以用线段树、树状数组解决,也可以用 ST 算法。 题目意思很明显,最大值-最小值就是结果。 第一道用 ST 解决的题目。 //ST 算法 #include #include ...
  • cbs612537
  • cbs612537
  • 2015年07月17日 15:58
  • 1388

POJ 3264 ST表(RMQ问题:查询区间最大最小值)

其实就是先用dp求出各个区间的最大最小值,然后查询的时候就O(1)了,不过用的二进制移位法,所以dp可以达到O(nlogn)速度…… #include #include #include #i...
  • u011466175
  • u011466175
  • 2014年04月19日 13:07
  • 1230

RMQ经典题:【POJ3264】 Balanced Lineup

http://poj.org/problem?id=3264 Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K ...
  • NOI2015
  • NOI2015
  • 2015年01月31日 21:36
  • 248

POJ 3264 Balanced Lineup RMQ

Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 43406   Accepted:...
  • Houheshuai
  • Houheshuai
  • 2016年04月19日 11:01
  • 233

POJ 3264 Balanced Lineup(简单RMQ)

POJ 3264 Balanced Lineup(简单RMQ) 分析:RMQ问题的简单应用。 AC代码:1641ms #include #include #include using namespac...
  • u013480600
  • u013480600
  • 2014年03月21日 14:23
  • 746

POJ 3264-Balanced Lineup(RMQ-ST算法)

Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 51826 ...
  • MIKASA3
  • MIKASA3
  • 2017年04月05日 16:20
  • 184

poj 3264 Balanced Lineup(两遍sparse-table算法的rmq问题)

刚搞掉了ping pong那个BIT 照着训练指南乘胜追击学的RMQ问题 这个题我貌似早就见过 一直都不会。刚才有了BIT的思想学了一下 sparse-table算法 还算比较简单吧。 先...
  • gl361148026
  • gl361148026
  • 2013年01月17日 11:18
  • 283

poj 3264 Balanced Lineup(RMQ)

【题目大意】:给出一些数,求出区间内最大值减去最小值的差值。 【解题思路】:经典的RMQ问题啊,用ST算法。&&还有线段树写法,改天写一下。 【ST算法】: 下面简单介绍一下...
  • new_wu
  • new_wu
  • 2012年03月15日 23:31
  • 224

POJ 3264 Balanced Lineup RMQ / 线段树

题意:给出一个队列,找出指定区间的最大值与最小值。 题解:RMQ, 注意边界需要理清楚。 参考http://www.cnblogs.com/cnjy/archive/2009/08/30/15...
  • Tsaid
  • Tsaid
  • 2011年08月13日 09:55
  • 357
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 3264 Balanced Lineup(RMQ)
举报原因:
原因补充:

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