莫队算法小结(待更新) [toc] 简单介绍 博客安利: 1. "OI Wiki" 2. "大米饼" 解决一类离线区间查询问题,分块思想,时间复杂度$O(n\sqrt n)$ 排序 读入的时候对整个数组进行分块,块大小一般使用$\sqrt n$,对询问操作排序的时候,先以块号为第一关键字,$r$为第 ...
分类:
编程语言 时间:
2019-10-19 12:51:49
阅读次数:
97
更新列名 db.Youzy_Stores.update({}, {$rename : {"StoreId" : "MetaId"}}, false, true) 查询长度 db.getCollection("Youzy_Stores_Navigations").find({$where:'this.... ...
分类:
数据库 时间:
2019-10-18 14:06:46
阅读次数:
92
"题面" "代码" $dfs$一遍,记录每个点的编号和它子树中点的最大编号。树上问题转化为区间问题后,单点修改区间查询用树状数组维护。 $O(nlogm)$ ...
分类:
其他好文 时间:
2019-10-12 20:40:15
阅读次数:
72
题意 给定一个序列,求有多少个最长连续子序列满足最大值减最小值之差不超过$k$。 分析 跟序列最大值最小值有关的可以想到单调栈,先预处理出每个数作为最大值能延伸的区间,然后枚举每个数作为最大值。 最大的满足条件的连续序列显然左边就是要在$[le[i],i 1]$里找到大于等于$a[i] k$的最小值 ...
分类:
其他好文 时间:
2019-10-09 22:32:45
阅读次数:
148
暑假刚学树状数组时就看了这个题,当时挺无头绪的。之后在昨天写了一道区间查询不同个数的模板题,转头发现这个题也是个模板...... 思路:用树状数组维护一个长度为输入总数长度的数组,然后向树状数组输入每一个位置的值,从该位置开始向上更新,每个数组值++,如果这个值在之前最近的位置出现过,所对应的最近位 ...
分类:
其他好文 时间:
2019-10-07 09:49:23
阅读次数:
62
题目链接 题意: 给定n个数,q次询问,查询当前区间最大值与最小值的差值 题解: 线段树模板题 区间查询最大值、最小值 代码: #include<iostream> #include<stdio.h> #include<math.h> #include<algorithm> #include<vec ...
分类:
其他好文 时间:
2019-10-03 16:26:04
阅读次数:
52
题目链接 题意: C a b c 【a,b】区间都加c Q a b 查询【a,b】的区间和 题解: 区间修改+区间查询 模板题 代码: #include<iostream> #include<stdio.h> #include<math.h> #include<algorithm> #include ...
分类:
其他好文 时间:
2019-10-02 16:13:36
阅读次数:
76
分块,是一种优雅的暴力,它通过对数列分段,完成对数列一些区间操作和区间查询的操作,是一种根号算法。 分块的功能: 1.区间加;2.区间减;3.。。。。。。 4.查询区间和 3.查询任意区间内有多少个数大于等于k(注意,这个功能是我们使用分块而不选择线段树的重要依据) 在我的分块中,block表示原数 ...
分类:
其他好文 时间:
2019-09-27 21:18:00
阅读次数:
89
T1平均数: 其实挺简单的,因为要求第K小平均数; 肯定得批量处理;于是考虑一种有效的方法,下意识线段树维护,区间查询,平衡书查询............ 但都不是,二分答案(二分平均数)把每个序列上的值都减去一个数,这样平均数就会整体减去一个数,那么比我小得就是区间和小于0的,然后求出前缀和,利用 ...
分类:
其他好文 时间:
2019-09-27 15:08:15
阅读次数:
83
本人水平有限,题解不到为处,请多多谅解 本蒟蒻谢谢大家观看 题目: Problem E: 树状数组 1 :单点修改,区间查询 Description 给定数列 a[1],a[2],…,a[n],你需要依次进行 q个操作,操作有两类:1 i x:给定 i,x将 a[i]加上 x;2 l r:给定 l, ...
分类:
编程语言 时间:
2019-09-21 13:14:53
阅读次数:
91