Codevs 2173 忠诚

来源:互联网 发布:淘宝api开发教程php 编辑:程序博客网 时间:2024/05/17 08:37

http://codevs.cn/problem/2173/

ST表
代码

#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>using namespace std;int n,m,a,b,minx;int num[100010],d[100010][20];void init(){    for(int i=1;i<=n;i++)    d[i][0]=num[i];    for(int j=1;(1<<j)<=n;j++)    for(int i=1;i+(1<<j)-1<=n;i++)    d[i][j]=min(d[i][j-1],d[i+(1<<(j-1))][j-1]);}int query(int l,int r){    int k=0;    while((1<<(k+1))<=r-l+1)    k++;    return min(d[l][k],d[r-(1<<k)+1][k]);}int main(){    memset(d,0X3f,sizeof(d));    scanf("%d%d",&n,&m);    for(int i=1;i<=n;i++)    scanf("%d",&num[i]);    init();    for(int i=1;i<=m;i++)    {        scanf("%d%d",&a,&b);        printf("%d ",query(a,b));    }    return 0;}