警示后人:检查数组是否开小以及提示几个其他的唐诗错误

P6136 【模板】普通平衡树(数据加强版)

ny_Dacong @ 2024-12-23 20:21:30

关于数组大小:最开始有 n 个数,如果 m 个操作全部是加数,那么至少要开 n+m 个数。

不开不会 RE,但是会 WA。

然后是读入时的异或,一定要这么写:

//tpb:当前读入的操作对象
//tpc:当前查询的答案
//ans:最后输出的答案
tpb ^= Last;
tpc = -1;
//......
if(tpc >= 0){
  Last = tpc,ans ^= tpc;
}

如果你是有旋 Treap,而且使用 mt19937 产生随机数,那么这个玩意返回的是 unsigned int 类型,一定记得取模!或者全开 long long 也行。

本题 a_i,x < 2^{30},哨兵不能设成 0x3f3f3f3f!至少是 0x7f7f7f7f,或者开 long long,设成 0x3f3f3f3f3f3f3f3f

进行排名相关的计算时,注意哨兵对答案的影响!


|