今天真$TM$又菜鸡了,无路赛无路赛。 估分:$100 + 0 + 40 = 140$ 考场:$30 + 0 + 40 = 70$ \(T1\) 算错时间复杂度了。。。我的莫队+倍增(看上去很高级的做法)是$O(n*sqrt(n)*logn)$,极限$19s$。。。 无语了,正解是线段树或者分块+\ ...
分类:
其他好文 时间:
2020-07-30 18:11:51
阅读次数:
57
#include <algorithm> #include <string> #include <cstring> #include <vector> #include <map> #include <stack> #include <set> #include <queue> #include < ...
分类:
其他好文 时间:
2020-07-24 23:42:50
阅读次数:
81
战略游戏 题目要求求删除后能使一些点不连通的点的个数。 删点可以想到点双树。 建出原图的点双树。 一条路径x,y上的点如果被删除,则x,y不能互相到达。 如果把圆点的权值设为1,方点的设为0,则答案就是虚树的点权和。 实际上,不用把虚树建出来。可以使用一个经典结论。 如果把一个点的权值放在父亲边上, ...
分类:
其他好文 时间:
2020-07-24 21:52:20
阅读次数:
74
bitset优化莫队。 由于bitset并不能存可重集,所以我们考虑给每种元素在bitset里留 \(k\) 个位置(\(k\) 为这种元素的个数)。我们只需要在离散化的时候不去重,然后把 \(p\) 放进bitset中第 \(p-cnt_p\) 个位置就行了(\(cnt_p\) 为bitset当前 ...
分类:
其他好文 时间:
2020-07-16 12:21:23
阅读次数:
64
很多时候,在进行莫队操作时,会遇到添加容易删除难的问题。 比如涉及到最值的运算。 这时,可以使用回滚莫队。 首先,和普通莫队一样,对序列进行分块。 对于左右端点在同一个块的询问,直接暴力求解。 然后,枚举左端点所在的块,并将右端点排序。 将左端点设为区间右端点,右端点从小到大移动。 这样,左端点每次 ...
分类:
其他好文 时间:
2020-07-04 23:04:39
阅读次数:
96
已知一个长度为 $n$ 的整数数列 $a_1,a_2,...,a_n$,给定查询参数 $l,r$,问在 $a_l,a_{l+1},...,a_r$ 区间内,有多少子序列满足异或和等于 $k$。也就是说,对于所有的 $x,y\space (1 ≤ x ≤ y ≤ r)$,能够满足 $a_x \bigo... ...
分类:
其他好文 时间:
2020-07-02 22:14:14
阅读次数:
77
基础莫队入门 首先来看这样的一个经典问题:求区间内有多少个不同的数 首先一个朴素的暴力就是每次移动左右端点然后更新答案,但这样显然可以被卡到 $O(n ^ 2)$,那么有什么办法优化这个复杂度呢?这个时候莫队算法就横空出世了! 首先我们考虑把询问离线,我们想办法把上面的询问排序然后让暴力的复杂度变优 ...
分类:
其他好文 时间:
2020-07-02 13:43:57
阅读次数:
46
bzoj4241/AT1219 历史研究(回滚莫队) bzoj它爆炸了。 luogu 题解时间 我怎么又在做水题。 就是区间带乘数权众数。 经典回滚莫队,一般对于延长区间简单而缩短区间难的莫队题可以考虑。 思路就是对于所有l在同一块的询问,只记录在这一块以外的扩展贡献,而对于在块内的部分每次暴力记录 ...
分类:
其他好文 时间:
2020-06-30 20:46:39
阅读次数:
57
莫队算法~练习一 gym卡了莫队,于是趁这个机会学一下莫队 莫队的核心是分块排序,这种特殊的排序方法将任务按排序后的顺序完成,可以在解决绝大多数无修改的离线区间问题中极大的优化时间(优化了$\sqrt n$左右)。 Sona NBUT - 1457 题意:n个数,寻问10000次,任意区间内的相等数 ...
分类:
编程语言 时间:
2020-06-26 14:25:50
阅读次数:
58
就是个回滚莫队和带权可删减并查集板子 LCT?雾 这板子还没整理过,就顺手写下吧.... 可删除并查集 其实实质和原本并查集差不多就加了一个虚点的概念 为什么要增加虚点呢? 这就是删除操作的本质 (这里用ha[i]=cnt 代表i节点对应的虚点为cnt) 删除,首先把所有与这个点 i(虚点cnt)有 ...
分类:
其他好文 时间:
2020-06-15 13:58:06
阅读次数:
53