社区讨论

警示后人

AT_arc077_c[ARC077E] guruguru参与者 11已保存回复 11

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
11 条
当前快照
1 份
快照标识符
@mhj8yg6k
此快照首次捕获于
2025/11/03 22:40
4 个月前
此快照最后确认于
2025/11/03 23:23
4 个月前
查看原帖
使用二阶前缀和这种方法的进,其余的可以直接退,估计没啥用处。
这里提几个易错的点:
  1. 十年 OI 一场空,后面我不说了大家都知道——总之记得要开 long long
  2. 数组大小记着别只开 10510^5,由于涉及到 +m+m 的情况(像是一个……环?有点类似吧),所以要开 2×1052 \times 10^5 才保险。
  3. 注意判断的时候是满足 l+2rl + 2 \le r 就执行,而非 l+2<rl + 2 < r。但是感觉没多少人会像我这么唐犯这种错误,但是致敬这里写错居然只会 WA 一个点,逆天数据。
  4. 注意前缀和的细节,r+1r+1 不要打成 rr+2+2 不要打成 +1+1,等等。一定要搞明白前缀和塞进去的那玩意儿到底是什么,不要把式子弄错了。
    大致的核心是这样的:
    CPP
    LL l=a[i],r=a[i+1];
    if(r<l)r+=m;
    if(l+2<=r){
        l+=2;
        s[l]++;
        s[r+1]-=r-l+2;
        s[r+2]+=r-l+1;
    }
    
    
希望能起到一些作用吧。

回复

11 条回复,欢迎继续交流。

正在加载回复...