RMQ(st)

int dp[1111][12];
int a[1111];
int n;
void RMQ_init()
{
    for(int i=1;i<=n;i++)
    {
        dp[0]=a;
    }
    for(int j=1;(1<<j)<=n;j++)
    {
        for(int i=1;i+(1<<j)-1<=n;i++)
        {
            int m=(1<<(j-1))+i;
            dp[j]=max(dp[j-1],dp[j-1]);
        }
    }
}
int RMQ(int L,int R)
{
    int k=0;
    while((1<<k)<=R-L+1) k++;
    k--;
    return max(dp[L][k],dp[R-(1<<k)+1][k]);
}
上一篇:(Stanford CS224d) Deep Learning and NLP课程笔记(二):word2vec


下一篇:[转]Top 10 DTrace scripts for Mac OS X