[POJ3368]Balanced Lineup

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[POJ3368]Balanced Lineup相关的知识,希望对你有一定的参考价值。

  题目传送门:http://poj.org/problem?id=3264

  这道题就是简单的求最大值求最小值。

  

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int maxn=50010;
int n,q,maxm[maxn][20],minm[maxn][20];

void init()
{    
     int i,j;
     for (j=1;(1<<j)<=n;j++)
         for (i=1;i+(1<<j)-1<=n;i++)
         {
             maxm[i][j]=max(maxm[i][j-1],maxm[i+(1<<(j-1))][j-1]);
             minm[i][j]=min(minm[i][j-1],minm[i+(1<<(j-1))][j-1]);
         }
}

int query(int l,int r)
{
    int i,j,k=0;
    while (1<<(k+1)<=r-l+1)k++;
    i=max(maxm[l][k],maxm[r-(1<<k)+1][k]);
    j=min(minm[l][k],minm[r-(1<<k)+1][k]);
    return i-j;
}
int main()
{
    int i,j,l;
    scanf("%d%d",&n,&q);
    memset(minm,0x6f,sizeof(minm));
    for (i=1;i<=n;i++)
    {
        scanf("%d",&maxm[i][0]);
        minm[i][0]=maxm[i][0];
    }
    init();
    for (i=1;i<=q;i++)
    {
        scanf("%d%d",&j,&l);
        printf("%d\n",query(j,l));
    }
    return 0;
}

 

以上是关于[POJ3368]Balanced Lineup的主要内容,如果未能解决你的问题,请参考以下文章

poj3264_Balanced Lineup

Balanced Lineup POJ - 3264

poj3264 Balanced Lineup 2011-12-20

POJ 3264 Balanced Lineup

POJ3264 Balanced Lineup

POJ 3264 Balanced Lineup