其他板子整理

ST表

int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)d[i][0]=read();    
    for(int j=1;(1<<j)<=n;j++)
    for(int i=1;i-1+(1<<j)<=n;i++)
    d[i][j]=max(d[i][j-1],d[i+(1<<(j-1))][j-1]);
    while(m--)
    {
        l=read();r=read();
        k=log2(r-l+1);
        printf("%d\n",max(d[l][k],d[r-(1<<k)+1][k]));
    }
}

猜你喜欢

转载自www.cnblogs.com/SFWR-YOU/p/10499761.html
今日推荐