问一下各位大佬
莫队里分块预处理这么打有问题吗?
(我这里输出会显示好几个块的 st[i] 都是块长,以前就遇到这种问题了,求助)
inline void init(){
block=sqrt(maxn);len=ceil((double)maxn/block);
for(int i=1;i<=len;i++){
for(int j=(i-1)*block+1;j<=i*block;j++) bel[j]=i;
ed[i]=min(maxn,i*block);
st[i]=(i-1)*block+1;
}
//printf("%d %d\n",block,len);
}
st[i],ed[i]输出情况:
317 316
317 632
317 948
317 1264
317 1580
317 1896
317 2212
317 2528
317 2844
317 3160
317 3476
317 3792
317 4108
317 4424
317 4740
317 5056
317 5372
317 5688