有没有开 long longlong\ longlong long。
如果你对块编号是这么写的:
for(int i=1;i<=blocknum;i++) for(int j=(i - 1)*blocksize + 1;j<=i*blocksize;j++) belong[j] = i;
当 n=50000n=50000n=50000 时,blocksize=223,blocknum=225,blocksize×blocknum=50175blocksize=223,blocknum=225,blocksize\times blocknum=50175blocksize=223,blocknum=225,blocksize×blocknum=50175
看你的数组是不是开小了。