如果你是在前面找最小值,st表要从0开始初始化。
就像这样:
for(ll i=1;i<=n;i++)st[i][0]=i; for(ll p=1;p<=20;p++){ for(ll i=0;i<=n-(1<<p)+1;i++)st[i][p]=s[st[i][p-1]]<s[st[i+(1<<(p-1))][p-1]]?st[i][p-1]:st[i+(1<<(p-1))][p-1]; }