数据结构
2016cxg
这个作者很懒,什么都没留下…
展开
-
树链剖分
//树链剖分 + 树状数组 + 点权修改//HDU 3966#pragma comment(linker, "/STACK:1024000000 , 1024000000")#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<vector>using namespace std原创 2017-07-24 16:03:43 · 198 阅读 · 0 评论 -
区间和 | 区间最值-区间k大
区间和1.递推-维护动态规划表 | 一维复杂度O(n) , 二维O(mn) 一维区间连续和:d[i]含义-区间[1,i]前缀和,递推公式 d[i] = d[i-1] + A[i] , 递推条件d[0] = 0 二维矩形区域和:d[i][j]含义-矩形( [1,i] , [1,j] ) 前缀矩形区域和递推公式d[i][j] = d[i][j-1] + d[i-1][j] + A原创 2017-07-20 01:54:11 · 586 阅读 · 0 评论 -
树状数组
//POJ 2352#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std ;const int maxn = 15010 ;const int maxx = 32010 ;/*树状数组是一个在线算法,相较于离线算法他不需要提前知道所有的输入, 他可以来一个输入原创 2017-07-20 01:26:24 · 184 阅读 · 0 评论 -
RMQ区间最值查询SparseTable算法
//一维区间最值查询模板稀疏表sparse table算法//区间最值查询--线段树--RMQ//区间连续和--线段树//区间第k大--快排--划分树(线段树?) --主席树 //二维区间最值查询根据一维区间最值查询的思想写代码 /*区间最值查询RMP ST 算法 原理: O(nlogn)预处理,O(1) 查询 预处理--使用动态规划,令F(i,j)表示以i起始的2^原创 2017-07-19 21:55:39 · 328 阅读 · 0 评论 -
线段树
//poj1166 求区间连续和#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std ;const int maxn = 1e6;/* 线段树通过将线段离散化构建了一颗二叉查找树的树结构,类似于完全二叉树使用数组实现离线算法,在l原创 2017-07-18 23:17:48 · 196 阅读 · 0 评论 -
划分树
HDU2665#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn = 100000 + 1000 ;/*划分树是一个基于线段树的二叉检索树与线段树用一维数组不区分深度不同划分树使用二维数组tree[20][maxn],前一个下原创 2017-07-19 21:04:11 · 164 阅读 · 0 评论 -
主席树
//SPOJ dquery #include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <math.h>#inclu原创 2017-07-29 16:54:24 · 251 阅读 · 0 评论 -
动态树
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>原创 2017-07-27 09:34:17 · 244 阅读 · 0 评论 -
伸展树
/* * 维修数列 NOI * 经典的伸展树的题目。 * 题目首先给出一个数列,然后进行下列6种操作 * 1:INSERT post tot c1,c2,...ctot :在当前数列的第pos个数字后插入tot个数字 * 2:DELETE pos tot : 从当前数列的第pos个数字开始连续 删除tot个数字 * 3:MAKE-SAME pos tot c :将当前数列的第pos个数原创 2017-07-26 14:06:06 · 208 阅读 · 0 评论