Ynoi专练

为了练习分块 莫队 bitset黑科技 我会写几道Ynoi 放到这里。
bitset 每一位占1bit int 每一位占 4 bitye bool占1 bitye long long 8bitye
LINK:luogu4688掉进兔子洞
我挑了一道最简单的莫队+bitset的题目 题目中说三个区间每次都要同时删掉一个数字问最后剩下的数字个数和.
n,m都是1e5.我们直接考虑莫队找区间 然后考虑找到区间之后如何快速的维护上述操作。
发现如果数字都不相同我们直接bitset来做 最后是集合大小之和 - 3*|S|.
但是如果数字相同怎么办 这里有一个小trick我们离散化的时候把相同的数字离散成不同的。
加入的时候如果加的是某个数字 这个数字出现多次我们就给bitset上对应的那个位置变成1.
这样我们就解决了数字相同的问题了。
最后 还有一个trick 1e5个大小为1e5的bitset我们是开不下的所以要进行分块回答。
大概分上2,3块以至于空间可以开下即可 这个浪费不了多少时间。
复杂度 莫队msqrt(n)+mn/64.应该可以勉强卡过。

原文地址:https://www.cnblogs.com/chdy/p/12450630.html