警示后人,如果你 WA on #18 #25
查看原帖
警示后人,如果你 WA on #18 #25
1417038
headless_piston楼主2025/7/1 20:04

莫队要先移动右指针,具体地

int l=1,r=0;
for(int i=1;i<=m;i++){
    while(l<q[i].l) del(a[l++]);
    while(l>q[i].l) add(a[--l]);
    while(r<q[i].r) add(a[++r]);
    while(r>q[i].r) del(a[r--]);
    ans[q[i].id]=getans();
}

应改为

int l=1,r=0;
for(int i=1;i<=m;i++){
    while(r<q[i].r) add(a[++r]);
    while(r>q[i].r) del(a[r--]);
    while(l<q[i].l) del(a[l++]);
    while(l>q[i].l) add(a[--l]);
    ans[q[i].id]=getans();
}

我是看了这个帖子才知道的,不然这辈子都调不出来……

2025/7/1 20:04
加载中...