进食后人
查看原帖
进食后人
578029
ivyjiao楼主2024/11/18 17:08

请检查你的莫队是否写成了以下的东西!

AC:

for(int i=1;i<=m;i++){
    for(;x>q[i].x;x--) upd(rev[x-1]);
    for(;y<q[i].y;y++) upd(rev[y+1]);
    for(;x<q[i].x;x++) upd(rev[x]);
    for(;y>q[i].y;y--) upd(rev[y]);
    if(q[i].lc) upd(q[i].lc);
    ans[q[i].id]=sum;
    if(q[i].lc) upd(q[i].lc);
}

WA 1~5,AC 6~10:

for(int i=1;i<=m;i++){
    for(;x>q[i].x;x--) upd(rev[x-1]);
    for(;y<q[i].y;y++) upd(rev[y+1]);
    for(;x<q[i].x;x++) upd(rev[x]);
    for(;y>q[i].y;y--) upd(rev[y]);
    if(q[i].lc) upd(rev[q[i].lc]);//here
    ans[q[i].id]=sum;
    if(q[i].lc) upd(rev[q[i].lc]);
}
2024/11/18 17:08
加载中...