本题是经典的莫队算法 莫队算法是离线查询的一种复杂度优秀的暴力算法。 首先我们需要注意异或的几个性质,相同数字异或等于0,所以我们考虑前缀和,因为从ai-aj的异或值就等于pre[i-1]^pre[j] 前缀和的异或,因为相同部分会抵消。 莫队一般和分块相结合,我们需要维护一个cnt数组,cnt[a ...
分类:
编程语言 时间:
2020-01-29 20:05:30
阅读次数:
87
"题目" 正解 其实在比赛时我都没有想到只有第五个操作的问题的不用莫队的方法…… 好自卑…… 其实,只要记录一下每个数前面与这个数相同的点的位置。 将数列变成个二维平面,而询问就是某个矩形内的点数。 容易发现其实第一个操作和第五个操作没有多少区别,就是维护零次方和、一次方和、二次方和、三次方和就够了 ...
分类:
其他好文 时间:
2020-01-28 21:26:50
阅读次数:
79
「WC2013」糖果公园 "传送门" 树上带修莫队板子题。 看懂题意后就是板子题了。 参考代码: ...
分类:
其他好文 时间:
2020-01-24 09:15:54
阅读次数:
57
「SPOJ10707」Count on a tree II "传送门" 树上莫队板子题。 锻炼基础,没什么好说的。 参考代码: ...
分类:
其他好文 时间:
2020-01-24 00:34:56
阅读次数:
102
「SDOI2009」HH的项链 "传送门" 数据加强了,莫队跑不过了。 考虑用树状数组。 先把询问按右端点递增排序。 然后对于每一种贝壳,我们都用它最右一次出现的位置计算答案。 具体细节看代码吧。 参考代码: ...
分类:
其他好文 时间:
2020-01-24 00:25:21
阅读次数:
72
树上数颜色,因为是查询子树,所以用 $dfn$ 序将树上问题转化为序列问题,然后就是裸的莫队数颜色了。 统计答案时还需注意一些细节问题,实现就看代码。 时间复杂度为 $O(n\sqrt{n})$。 $code:$ ...
分类:
其他好文 时间:
2020-01-22 23:54:21
阅读次数:
127
<学习计划> 一、重点学习新算法 1.平衡树splay,动态树LCT 2.(任意模数)NTT 3.莫队算法 4.带修主席树(树状数组套主席树),线段树/树状数组套平衡树 5.后缀数组/后缀自动机 二、刷题,复习、巩固在OJ上打星号的题目 <注意事项> 1.考试时无论题目有多难,都要努力想正解,不要理 ...
分类:
其他好文 时间:
2020-01-21 00:32:52
阅读次数:
92
bitset大概就是让你轻松建立一个很长的二进制数来存东西,并提供了快捷的操作和优美的常数。 #include <bitset> bitset <32> b;32为长度 需要引用头文件,定义一个bitset。 stl的东西,所以从0开始。 支持左右移。 支持下标访问修改。 b.any() b中是否存 ...
分类:
其他好文 时间:
2020-01-20 10:03:08
阅读次数:
107
数据不是很大,我们可以通过莫队算法来很轻易的解决这个问题。注意不要搞混n,m变量。 按照一定顺序来进行操作询问,使得重复操作尽可能的少。我们考虑从一个已经得出的[l,r]的答案,转移到[a,b]的答案就是两个点的曼哈顿距离。可以使用最小曼哈顿距离生成树来解决。但是代码量过大。我们有更简单的解决策略。 ...
分类:
其他好文 时间:
2020-01-20 09:17:12
阅读次数:
71
回滚莫队 用来处理一类区间扩张容易而收缩难的莫队问题。 大概的思路如下: 还是按莫队的方法排序(不要奇偶性优化),把所有询问按照左端点所在块分类处理。 对于左端点在同一个块$[L,R]$的,先把右端点也在$[L,R]$内的暴力处理。 而其它询问的右端点必定递增,因此我们可以实时处理出$[R,r]$的 ...
分类:
其他好文 时间:
2020-01-18 21:14:48
阅读次数:
75