一.简单介绍大数据技术产物 “大数据”一词首先出现在2008年9月<Nature>杂志发表的一篇名为“Big Data: Wikiomics”的文章上(Mitch,2008).“大数据科学”尚未有统一定义,但是科学家普遍认为它是以海量的多元异构数据为主要研究对象,以大数据的存储.处理和理解方法为主要研究内容,以新兴的计算技术为主要研究工具,以扩展人类对数据的利用能力为主要目标的一门新兴的综合性学科.它主要针对当前海量(volume).多元(variety)和高速更新(velocity)数据的处…
目录 SQLite R*Tree 模块测试 1.SQLite R*Tree 模块特性简介 2.SQLite R*Tree 模块简单测试代码 SQLite R*Tree 模块测试 相关参考: MySQL空间索引简单使用 MongoDB地理空间数据存储及检索 The SQLite R*Tree Module Memory-Mapped I/O In-Memory Databases libspatialindex R* tree - Wikipedia 我另外做了GEOS STRtree/Quadt…
转载请注明出处:http://write.blog.csdn.net/postedit/40589651 Oracle数据库里的B树索引就好象一棵倒长的树.它包括两种类型的数据块:一种是索引分支块,还有一种是索引叶子块 索引分支块包括指向对应索引分支块/叶子块的指针和索引健值列(这里的指针是指相关分支块/叶子块的块地址RDBA. 每一个索引分支块都会有两种类型的指针.一种是LMC,还有一种就索引分支的索引行记录所记录的指针.lmc是Left Most Child的缩写,每一个索引分支块都仅仅有一…
Segment Tree First, try to build the segment tree. lintcode suggest code: Currently recursion recommended. (For coding exercise, u can just start with "Interval minimum number" below.) """ Definition of SegmentTreeNode: class Segm…
[问题] 需要开启bin-log备份/恢复数据库,但是因为本身bin-log保存的位置存储太小,并且归类性也不好,所以自己新创建了/data/binlog来保存二进制日志 在/etc/my.cnf增加了bin-log的位置后,需要重启mariadb 但是重启后,却出现了如下的报错: [解决方式一] 将需要存储二进制日志的目录加上权限:chown -R mysql:mysql /data [解决方式二] 基本上网络都是方式一的方法,但是我设置了权限后重启mariadb还是出现了一样的报错 然后发现…
这三个名字可以简单理解为文件在本地仓库存在的三种不同的位置. 如下,是做commit提交两段提交过程,工作区(working tree),暂存区(index)和 branch(commit). working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了. index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变了,此时index file就…
行业领先的.NET界面控件DevExpress 日前正式发布v19.1版本,本站将以连载的形式介绍各版本新增内容.在本系列文章中将为大家介绍DevExpress WPF v19.1中新增的一些控件及部分功能增强,点击下载试用新版本试用>> 支持.NET Core 3 Preview 5 除了针对.NET Framework 4.5.2构建的DevExpress程序集之外,新版本还发布了针对.NET Core 3构建的新程序包.这些程序包包含相同的DevExpress WPF控件集,允许您在正式…
The following is from Max Howell @twitter: Google: 90% of our engineers use the software you wrote (Homebrew), but you can't invert a binary tree on a whiteboard so fuck off. Now it's your turn to prove that YOU CAN invert a binary tree! Input Specif…
题目描述: 给你一个长度为n的最开始为0的数以及m个更新操作以及数据生成器参数X,Y,Z.每次操作,将由数据生成器生成出li,ri,vi.让你从区间[li,ri]中,将所有小于vi的数变为vi.最后让你求从1到n的 i*ai的亦或和. 分析:区间操作优先考虑线段树 , 那线段树存储什么数值呢? 我们知道如果l ,r 的最大值<=val , 那整个l区间都要改成val , 如果最小值>=val  那这个区间就不用修改 : 那不是这种情况怎么办呢?不可能是for一遍吧 , 其实只要一次跟新操作就好…
[题目链接] https://codeforces.com/contest/620/problem/E [算法] 显然 , 一棵子树的DFS序必然为连续的一段 用线段树维护颜色数即可 [代码] #include<bits/stdc++.h> using namespace std; ; struct edge { int to , nxt; } e[MAXN << ]; int n , m , tot , timer; int a[MAXN],dfn[MAXN],pos[MAXN]…
[题目链接] 点击打开链接 [算法] 树链剖分 对于线段树的每个节点,记录这段区间的最小值,最小值的个数,值为0的个数,此外,还要维护两个懒惰标记 [代码] 本题细节很多,写程序时要认真严谨! #include<bits/stdc++.h> using namespace std; #define MAXN 100010 #define MAXLOG 20 const int INF = 1e9; int i,n,m,tot,opt,u,v,c,x,y,timer,Lca,tmp; int d…
题目链接:http://poj.org/problem?id=1577 解题思路:题目是中文就不翻译了,网上都说这题很水,但本蒟蒻虽然知道是倒过来建立二叉搜索树,可是实现不了,得到小伙伴的关键递归思想的指点之后,茅塞顿开,豁然开朗,终于也能笑谈,曰之"水题"!!! Falling Leaves Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5340   Accepted: 2886 Description  F…
https://nanti.jisuanke.com/t/38228 题意给你一个序列,对于每个连续子区间,有一个价值,等与这个区间和×区间最小值,求所有子区间的最大价值是多少. 分析:我们先用单调栈预处理 区间 [L[i] , R[i] ] 最小值为a[i] , 的L[i] , R[i] ; 首先我们明白 , 如果a[i] >0 那 [L[i] , R[i] ] , 里面的数都是正数 , 所以应该全选 : a[i] < 0 , 那我们 应该在[L[i]-1 , i-1] 这里面找到前缀和最大…
我不会ST表 智推推到这个题 发现标签中居然有线段树..? 于是贸然来了一发线段树 众所周知,线段树的查询是log(n)的 题目中"请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为 O(1)" 然后草草打完代码竟然AC了..exm?? 最慢也不过400ms 数据好水 好吧,不多说上代码 首先是数据存贮,分别是左子节点,右子节点,maxx存贮当前节点的最大值 struct node{ int left,right,maxx; }tree[100000*4+10…
推荐前辈学姐博客文章,写的很细 https://www.cnblogs.com/TheRoadToTheGold/p/6254255.html 学学半,此随笔主要是加深自己对线段树的理解 题目:洛谷P3374模(mu)板题 (话说为什么是树状数组,主要是因为我太菜了不会懒标记) //代码中的位运算其实就是乘除2的一些操作#include<cstdio> using namespace std; int n,m,ans; struct node { int left,right,num; }tr…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2678 [算法] 首先不难想到如下DP : 记f[i]表示前i本书的高度和最小值 显然 , 有状态转移方程 : f[i] = min{ fj + max{hj+1 , hj+2 , ... hi} } 不难发现 , 当i确定时 , 随着j的减小 , max{hj + 1 , hj+2 , ... hi}的值单调递增 不妨维护一个单调递减的单调栈 预处理前缀和 , 每次在单调栈中二分出…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1103 [算法] 树链剖分 时间复杂度 : O(NlogN ^ 2) [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 250010 typedef long long LL; int n , tot , timer; int head[MAXN] , dfn[MAXN] , top[MAXN] , fa[…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2836 [算法] 树链剖分 时间复杂度 : O(NlogN ^ 2) [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 100010 typedef long long LL; struct edge { int to , nxt; } e[MAXN << ]; int n , tot , ti…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1969 [算法] 首先离线 , 将删边操作转化为加边操作 不妨首先将这张图按边-双连通分量(e-DCC)缩点 , 缩点后形成了一棵树 树链剖分 + 线段树即可 时间复杂度 : O(NlogN ^ 2) [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 200010 struct query { int ty…
[题目链接] 点击打开链接 [算法] 树链剖分模板题 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 30000 struct SegmentTree { int l,r,maxn,sum; } tree[MAXN*]; int i,N,Q,u,v,t,num; ],fa[MAXN+],son[MAXN+],pos[MAXN+], top[MAXN+],dep[MAXN+],id[MAXN+],a[MAXN+]; s…
[题目链接] 点击打开链接 [算法] 树链剖分,子树的DFS序也是连续的一段 要注意细节! [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 100000 struct SegmentTree { ],opt; } tree[MAXN*]; int i,N,Q,x,num; ],size[MAXN+],son[MAXN+],fa[MAXN+], top[MAXN+],id[MAXN+]; string type; ve…
[题目链接] 点击打开链接 [算法] 线段树扫描线 推荐一篇比较容易理解的线段树扫描线的文章 : https://blog.csdn.net/u013480600/article/details/22548393 [代码] 注意此题输出格式若使用"%.2lf"会离奇Wrong Answer,要改为"%.2f" #include <algorithm> #include <bitset> #include <cctype> #inc…
[题目链接] 点击打开链接 [算法] 二维线段树(树套树) 注意标记永久化 [代码] #include<bits/stdc++.h> using namespace std; #define MAXD 1000 int D,S,N,d,s,w,x,y,tmp; struct SegmentTree { struct Node { int l,r,Max,tag; } Tree[MAXD*+]; inline void build(int index,int l,int r) { int mid…
[题目链接] 点击打开链接 [算法] 本题所运用的也是Splay的区间操作,但是实现较为困难 INSERT操作             将pos splay至根节点,pos+1 splay至根节点的右节点,然后对根节点的右节点的左节点建树即可 DELETE操作             将l-1 splay至根节点, r+1 splay至根节点的右节点,直接“砍断”根节点的右节点的左节点 MAKE_SAME操作             将l-1 splay至根节点,r+1 splay至根节点的右节…
[题目链接] 点击打开链接 [算法] 本题也是Splay区间操作的模板题,不过要比BZOJ 3223要稍微复杂一些,做完此题后,我终于对Splay有了更深入的理解,有“拨开云雾见青天”的感觉 本题还是有许多细节的,笔者花了5h才通过了此题 [代码] #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #inclu…
[题目链接] 点击打开链接 [算法] 线段树 注意标记下传 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 500000 typedef long long LL; struct SegTreeNode { LL l,r,sum,lazya,lazyb; }tree[MAXN+]; LL i,N,P,Q,l,r,x,opt; LL a[MAXN+]; template <typename T> void…
[题目链接] 点击打开链接 [算法] 本题是splay区间操作的模板题 我们每个点的权值设为”当前在序列中的排名“,根据二叉排序树的性质,这棵树的中序遍历就是当前序列 如果我们要获得一段区间[l,r],那么我们将l-1splay到根节点,将r+1splay到根节点的右子树的根,我们发现,根节点 的右节点的左子树就是区间[l,r] 对于翻转操作,我们其实只需将“根节点的右节点的左子树”这棵树不断地进行左右子树交换就可以了,但是,为了避免 交换次数太多,我们可以像线段树那样,每个点都存一个懒惰标记…
题意: 给定n个兵营的士兵初始值, 然后有最多40000个操作: 操作一共有两种, 一个是查询给定[a,b]区间兵营的士兵总和. 另一个是增加/减少指定兵营的士兵数目. 输出每次查询的值. 分析: 线段树单点更新模板 代码: #include <bits/stdc++.h> using namespace std; + ; struct{ int l, r, sum; }tree[maxn*];//起码要*4 int a[maxn]; int n; void build(int index,…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4392 [算法] 线段树 时间复杂度 : O(MlogN) [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 200010 typedef long long LL; int n , m; LL a[MAXN]; struct SegmentTree { struct Node { int l , r; L…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4551 [算法] 树链剖分 时间复杂度 : O(QlogN) [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 100010 struct Node { int l , r; bool flg; } Tree[MAXN << ]; struct edge { int to , nxt; } e[…