省选备考记录(12月15号始¶
luogu 省选计划day1¶
树状数组¶
线性建立:¶
先把\(b_i\)赋值为\(a_i\),然后\(i\)从\(1\)到\(n\),不断执行\(b_{i+lowbit(i)}\)即可(注意\(i+lowbit(i)\le n\))。
与倍增的关系:¶
诶诶诶,之前的都在搞文化课,笔记没记,就从WHUWC的时间点开始记得了¶
珂多莉树的小纪录¶
就是set的运用,太暴力了,我都不敢相信还专门搞出来个数据结构名,更像个小trick
适用于各种随机生成的区间推平询问操作。
就是把所有数值一样的合并,用set存结点。
仔细想了一下,感觉没啥必要打,思想很简单,撇开思想之后,代码最大的难点就在于set这个迭代器的用法了。
之前noip的时候记过,当时笔记的一部分:

然后其中应当加上关于erase的部分补充:s.erase(lT,rT);代表把lT到rT-1(lT,rT都是迭代器)中间的元素全部删除