sevenki @ 2024-02-02 09:07:12
如果你预处理每两对 block 边界 [l,r] (l,r 为块编号)之间数的出现次数:
block
在枚举 block 中的每一个数,
是 for(int k=L[i];k<=R[j];k++)
for(int k=L[i];k<=R[j];k++)
而不是 for(int k=L[b[i]];k<=R[b[j]];k++)。
for(int k=L[b[i]];k<=R[b[j]];k++)
因为 i,j 枚举的是块编号而不是数组中某个下标。
by Chizuru_Ichinose @ 2024-07-22 19:37:04
重开吧