莫队
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
-
【模板】莫队二次离线
传送门 题解 有的题目本身可以用莫队来做,但是更新或者查询复杂度较高,导致直接使用莫队在这些问题上的表现不算优秀。 在询问的东西可以进行前后缀差分,且存在一个询问复杂度较低的做法的时候,可以考虑这个trick:莫队二次离线。stO %%% lxl %%% Orz 考虑莫队的实际操作过程中我们每一步在干什么,其实算的就是排序后的上一个询问和这一个询问的答案之间的差量。 现在我们考虑计算出所有差量之...原创 2019-11-22 16:17:04 · 217 阅读 · 0 评论 -
【LOJ6571】「雅礼集训 2018 Day11」字符串(Trie)(回滚莫队)(链表)
传送门 题解: 首先对于GGG来说,直接算有多少合法情况并不好算,考虑算有多少非法情况,也就是所有空白段长度的平方和,发现这个需要支持一个单独的插入,询问前驱后继,用线段树或者平衡树还能支持删除,于是可以上莫队了,注意要按照串长分块,复杂度根号下面带一个log。 但是这个log看上去很不爽,注意到我们其实可以用链表维护前驱后继,但是问题在于链表不支持快速插入,插入操作看上去很蛋疼,需要直接询问前...原创 2019-09-14 10:33:57 · 316 阅读 · 0 评论 -
【YNOI2017】【BZOJ4810】【洛谷P3674】由乃的玉米田 / 小清新人渣的本愿(莫队)(bitset)
传送门 代码: #include<bits/stdc++.h> #define re register #define gc get_char #define cs const namespace IO{ inline char get_char(){ static cs int Rlen=1<<20|1; static char buf[Rlen],*p1...原创 2019-04-17 17:03:37 · 143 阅读 · 0 评论 -
【YNOI2017】【BZOJ4866】【洛谷P3604】由乃的商场之旅 / 美好的每一天(莫队)
BZOJ传送门 洛谷传送门 解析: 代码: #include<bits/stdc++.h> #define ll long long #define re register #define gc getchar #define cs const namespace IO{ inline int getint(){ re char c; while(!isdigit(c=...原创 2019-04-17 11:51:57 · 182 阅读 · 0 评论 -
【YNOI2016】【BZOJ4939】【LOJ6199】【洛谷P4688】掉进兔子洞(莫队)(bitset)
BZOJ传送门 LOJ传送门 洛谷传送门 代码: #include<bits/stdc++.h> #define ll long long #define re register #define gc getchar #define cs const namespace IO{ inline char get_char(){ static cs int Rlen=1<...原创 2019-04-17 11:13:17 · 170 阅读 · 0 评论 -
2018.12.30【国家集训队】【洛谷P1903】数颜色 / 维护队列(带修莫队)
传送门 解析: 这道题好像以前在BZOJ上做过。 但是因为BZOJ数据较水,所以被我复杂度不对的代码搞过去了。。 真正的排序策略应该是这样的: 块大小设置成n23n^{\frac{2}{3}}n32 左端点块不同就按照左端点块排序。 右端点块不同根据左端点块标号的奇偶性排序。 不然就按照时间戳的顺序排个序。 每次暴力修改时间戳,然后调整块的左右端点。 这样复杂度才是真正的O(n53)O(n^{...原创 2018-12-30 10:31:13 · 177 阅读 · 0 评论 -
2018.10.24【NOIP练习】Leo的组合数问题(组合数学)(莫队)
传送门 解析: 总是忍不住要吐槽一句,这题面也太长了吧。。。 首先,肯定要把我们要求的东西推成一个式子,不然怎么可能做题。。。 设fif_ifi表示当前以iii为最大值的方案数。 那么iii之后的数显然是单调递减且连续,方案数为111。 考虑前i−1i-1i−1个位置,放法数就是∑j=1i−1fj\sum_{j=1}^{i-1}f_j∑j=1i−1fj 所以我们现在得到递推式fi=∑j=1...原创 2018-10-24 23:36:57 · 185 阅读 · 0 评论 -
2018.10.29【BZOJ2120】数颜色(带修莫队)
传送门 解析: 带修莫队裸题啊, 直接暴力搞就是了。 要学习带修莫队我推荐胡小兔的博客,这位大佬写得实在是详细,我都不知道有什么可以补充的。 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #define re register #define gc getchar #define pc p...原创 2018-10-29 16:43:42 · 149 阅读 · 0 评论 -
2018.10.28【CQOI2018】【BZOJ5301】【洛谷P4462】异或序列(异或前缀和)(莫队)
BZOJ传送门 洛谷传送门 解析: 数据范围1e51e51e5,非强制在线,嗯,这很莫队。 考虑怎么统计答案。 显然要询问区间xorxorxor只需要知道前缀xorxorxor然后差分一下就行了。 统计每个前缀xorxorxor的值出现了多少次,注意加入和删除的操作略有区别。 注意我们计算是用前缀和差分的,所以莫队的区间处理要模仿前缀和,就是询问&lt;l,r&gt;&l...原创 2018-10-28 22:26:59 · 133 阅读 · 0 评论