while (r < q[i].r) add(a[++r]);
while (r > q[i].r) del(a[r--]);
while (l > q[i].l) add(a[--l]);
while (l < q[i].l) del(a[l++]);
这是我学习莫队一直以来的写法,然鹅今天在做题的时候发现它 T 了!
然后改成了这个样子:
while (l > q[i].l) add(a[--l]);
while (r < q[i].r) add(a[++r]);
while (r > q[i].r) del(a[r--]);
while (l < q[i].l) del(a[l++]);
就 A 了,但两者有什么区别?前者有什么问题?我感到很疑惑。