首页 > 代码库 > rmq模板

rmq模板

void init_rmq(int n)//区间最大值{    for(int i=1;i<=n;i++)        f[i][0]=a[i];    for(int j=1;j<=20;j++)    {        for(int i=1;i<=n;i++)        if(i+(1<<j)-1<=n)        f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]);    }}int out(int l,int r){    int k=log(l+r-1/log(2));    return max(f[i][k],f[j-(1<<k)+1][k]);}

 

rmq模板