之前尝试ST表,开的50005*16,感觉应该没问题啊,log2(50005)+1=16.
但是一直有5个RE
后来开到10000020结果过了,到底什么鬼哇!!!大佬们这个是啥原因啊,是行的数据开错了还是列的数据范围开错了啊。ST表不是nlog(n)吗??
还有一个疑问就是……为什么开少了会有影响嘞?我用的log2(50005)作为p的上界,这个始终没有变过,建树过程用for循环一直到上界就结束了,多开的那些列也没有用到呀?为什么扩大了数据范围就能过啊??
求问是什么原因awa,真的是百思不得其解
for(int p=1;p<=power;p++){
for(int i=1;i<=n;i++){
st_max[i][p]=max(st_max[i][p-1],st_max[i+(1<<p-1)][p-1]);
st_min[i][p]=min(st_min[i][p-1],st_min[i+(1<<p-1)][p-1]);
}
}