警示后人:本题所有可能的错误原因
查看原帖
警示后人:本题所有可能的错误原因
403069
Exp10re楼主2024/1/2 23:27
  1. 请明确您的 rnk(l,r,x)rnk(l,r,x) 查询的是 [l,r][l,r] 内小于 xx 的数个数 +1+1 还是 [l,r][l,r] 内小于等于 xx 的数的个数。后者是正确的。

  2. 块内排序应该是 sort(a+begin[k],a+end[k]+1) 而非 sort(a+begin[k]+1,a+end[k]+1) 或者 sort(a+begin[k],a+end[k])。

  3. 实测较优的块长满足 Δ∈[200,300]\Delta\in[200,300],似乎并不满足 Δ=nlog⁡n\Delta=\sqrt{n\log n}。(当然如果您用 Δ=nlog⁡n\Delta=\sqrt{n\log n} 通过了本题,我收回这句话)

  4. 需要使用一般的卡常技巧,包括但不限于:快读,位运算等。

  5. 二分答案需要使用 mid=(l+r)>>1 而非 mid=(l+r)/2,原因是会出现负数。

  6. 针对本题的卡常技巧,包括但不限于:块内判断排名时若超过最大值或低于最小值则直接退出,存储散块内数据进行二分,二分答案边界使用区间最大最小值,散块加采用归并排序等。

  7. 无论何时,调用单个数据时记得考虑整块修改的懒标记。


调试愉快。顺便放一下我挂了整整两页的评测记录。

2024/1/2 23:27
加载中...