随笔分类 -  数据结构——莫队

摘要:IX.[Ynoi2017] 由乃的玉米田 比VII.小清新人渣的本愿仅仅多了一个除法操作。 常规方法看上去不行,考虑根号分治。对于 n 的询问,直接暴力枚举较小的那个数即可。对于 <n 的询问,考虑 O(n) 扫一遍回答所有 x 为某一 阅读全文
posted @ 2021-04-06 10:16 Troverld 阅读(55) 评论(0) 推荐(0) 编辑
摘要:VIII.CF633H Fibonacci-ish II 强烈谴责卡常屑题( 莫队。于是要支持插入数、查询与斐波那契数列的点积和。 离散化后就直接在线段树上处理。于是变成单点插入/删除(这个很 easy)以及后缀斐波那契数列前移/后移。 直接上矩阵维护。但是会TLE(因为常数是 23)。预 阅读全文
posted @ 2021-04-06 10:14 Troverld 阅读(55) 评论(0) 推荐(0) 编辑
摘要:VII.小清新人渣的本愿 仍是 bitset 优化莫队。 具体而言,减操作就直接右移/左移 bitset(具体哪个都行,反正是等价的)然后求 and 看看是否非零即可;加操作就同时维护原本的 bitset 和取反后的 bitset,然后就像减操作一样处理即可;乘操作就直接 n阅读全文
posted @ 2021-04-06 10:12 Troverld 阅读(68) 评论(0) 推荐(0) 编辑
摘要:VI.[Ynoi2016] 掉进兔子洞 bitset 优化莫队。 具体而言,我们似乎只需要求出三个区间的 bitset,然后求交即可。 但是问题来了,bitset 似乎只支持不可重集求交呀? 没关系,我们考虑在离散化时,对于一个出现次数为 cx 的元素 x,预留它后面的 \(c_x 阅读全文
posted @ 2021-04-06 10:10 Troverld 阅读(48) 评论(0) 推荐(0) 编辑
摘要:V.CF940F Machine Learning 直接在线莫队即可。 需要注意的是,因为本题中 mex 大小是不可能超过 n 的,因此不用分块维护值域,直接暴力即可。时间复杂度 O(n5/3)。 代码: #include<bits/stdc+ 阅读全文
posted @ 2021-04-06 10:07 Troverld 阅读(48) 评论(0) 推荐(0) 编辑
摘要:IV.CF576C Points on Plane 实际上跟莫队关系不大,但是注意到平面上两点间曼哈顿距离就等价于莫队上从一个状态到另一个状态时左右端点移动次数。于是直接莫队式排序即可。 代码: #include<bits/stdc++.h> using namespace std; const i 阅读全文
posted @ 2021-04-06 10:05 Troverld 阅读(48) 评论(0) 推荐(0) 编辑
摘要:III.[WC2013] 糖果公园 树上莫队。 树上莫队是依照于一种特殊的序列:括号序列而进行的莫队。括号序列,具体而言,是 dfs 树的时候,到一个点就插入序列,离开一个点的时候再插入一次。这样,所有在树上 xy 路径上出现的点,在括号序列上就是自 x 第一次出现的位置到 阅读全文
posted @ 2021-04-06 10:03 Troverld 阅读(65) 评论(0) 推荐(0) 编辑
摘要:II.【模板】回滚莫队&不删除莫队 莫,就硬莫。 代码: #include<bits/stdc++.h> using namespace std; const int BBB=450; int n,m,a[200100],mx[200100],mn[200100],ans,res[200100]; 阅读全文
posted @ 2021-04-06 10:01 Troverld 阅读(42) 评论(0) 推荐(0) 编辑
摘要:I.[JOISC2014]歴史の研究 解法1.普通莫队 普通莫队要保证复杂度是一个根号,须确保插入/删除一个数均是 O(1),而询问在 O(n) 以内。 关于本题,最好的分块维护方式,是对一个出现了 cntx 次的元素 x,将 \(1\times x,2 阅读全文
posted @ 2021-04-06 10:00 Troverld 阅读(74) 评论(0) 推荐(0) 编辑
摘要:XXXI.CF666E Forensic Examination 题解 阅读全文
posted @ 2021-04-01 11:18 Troverld 阅读(35) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示