链接: https://vjudge.net/problem/SPOJ DQUERY 题意: 找n个数中无修改的区间不同数个数 思路: 莫队算法,第一次写,很奇怪,代码很好写,分块之后来回跳。 代码: c++ include include include include include inclu ...
分类:
其他好文 时间:
2019-07-21 01:23:05
阅读次数:
111
一、题目: "题目链接" 个人私题,请注意版权保护。 二、思路: 树上莫队经典例题。其莫队的思想也很经典。 首先考虑在树上怎样莫队。我们很熟悉在序列上进行莫队,那么我们考虑将树转化成序列。那么什么序列能将子树转化为一个区间呢?当然是dfs序了! 然后回忆HH的项链那道经典题。它问的是“一段区间所包含 ...
分类:
其他好文 时间:
2019-07-19 21:19:40
阅读次数:
138
首先显然应该把数组离散化,然后发现是个带修莫队裸题,但是求mex比较讨厌,怎么办?其实可以这样求:记录每个数出现的次数,以及出现次数的出现次数。至于求mex,直接暴力扫最小的出现次数的出现次数为0的正整数,就一句话,这样看似会超时,实际上是O(√n)的复杂度。为什么?假设存在出现1,2,...,x的 ...
分类:
系统相关 时间:
2019-07-13 09:15:32
阅读次数:
147
[toc] @description@ 题面明天起来补。。。 @solution@ 跟颜色有关,虽然题目中说是要“修改”实际上每一个询问之间是独立的,即修改不会有时效性。 所以不难想到可以使用树上莫队。 首先将边的颜色与边权下放至点。然后莫队时,统计出区间内每个点的点权(就是下放的边权)和 S、区间 ...
分类:
其他好文 时间:
2019-07-07 23:55:59
阅读次数:
294
树上莫队板子题,求个$dfn$求个$low$就行了。 cpp include include include include include include include include include using namespace std; define re register define ...
分类:
其他好文 时间:
2019-07-07 14:45:59
阅读次数:
141
"原题链接" 题目大意是有N个数,分成K段,每一段的花费是这个数里相同的数的数对个数,要求花费最小 如果只是区间里相同数对个数的话,莫队就够了 而这里是!边单调性优化边莫队(只是类似莫队)!而移动的次数和分治的复杂度是一样的! 这个时候就不能用单调栈+二分了,得用分治 分治的方法就是$Solve(l ...
分类:
其他好文 时间:
2019-07-05 20:51:22
阅读次数:
83
数据结构进阶 堆 倍增 并查集 树状数组/线段树 树上差分/树剖 点分治 分块/莫队/整体二分 CDQ分治/离线分治算法 主席树动态规划基础DP模型 : 线性DP 背包DP 区间DP 树型DP 状压DP 环形DPDP优化 : 倍增优化 单调队列优化 数据结构优化 斜率优化图论最短路 生成树 LCA ...
分类:
其他好文 时间:
2019-07-02 18:57:24
阅读次数:
93
小Z的袜子 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在 ...
分类:
其他好文 时间:
2019-07-01 11:02:42
阅读次数:
75
莫队算法模板题 cpp include include include include include include include include include include include using namespace std; typedef long long lld; typede ...
分类:
其他好文 时间:
2019-06-28 14:54:08
阅读次数:
118
Xors on Segments 转换一下变成询问区间选两个数异或的最大值, 要注意的是一个数作为左端点要-1, 所以在回滚莫队的时候用两棵字典树维护。 这个题居然n ^ 2 也能过。。。 其实用分治 + 可持久化字典树可以做到n * log(n) * log(n), 懒得写了。。。 ...
分类:
其他好文 时间:
2019-06-18 21:28:38
阅读次数:
109