ST - RMQ

void ST_create(){
    for(int i = 1; i <= n; i++)
        F[i][0] = a[i];
    int k = log2(n);
    for(int j = 1; j <= k; j++)
        for(int i = 1; i <= n - (1<<j) + 1; i++)
            F[i][j] = max(F[i][j-1], F[i+(1<<(j-1))][j-1]);
}

int ST_query(int l, int r){
    int k = log2(r-l+1);
    return max(F[l][k], F[r-(1<<k)+1][k]);
}
全部评论

相关推荐

美团 后端开发 总包n(15%是股票)
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务