线段树
文章平均质量分 87
相思作坊半世离殇
多刷题。
展开
-
线段树基本知识
线段树是擅长处理区间的一种数据结构。线段树是一棵完美二叉树,根结点维护的是整个区间,每个结点维护的是父亲的区间二等分后的其中一个区间,所有叶子的深度都相同,每个结点要么是叶子要么是有两个儿子的树,当有n个元素时,对区间的操作可以在O(logn)时间内完成。根据结点中维护的数据的不同,线段树可以提供不同的功能,下面以Range Minimum Query(RMQ)操作的线段树为例。基于线段树的RMQ原创 2016-07-29 21:27:48 · 227 阅读 · 0 评论 -
poj1769 Minimizing maximizer线段树优化dp
题目抽象出数学模型就是说,最少需要多少个区间能完全覆盖区间[1,n]。原创 2016-08-02 23:11:49 · 483 阅读 · 0 评论 -
Frequent Values(UVa 11235) RMQ问题
来自《算法竞赛入门经典训练指南》1.RMQ问题范围最小值问题(Range Minimum Query,RMQ)。给出一个n个元素的数组a[1],a[2],……a[n]。设计一个数据结构,支持查询操作Query(L,R):计算min{a[L],a[L+1],……a[R]}.采用Tarjan的Sparse-Table算法,它预处理的时间是O(nlogn)。查询只需要O(1)。令d[i]原创 2016-10-09 21:02:48 · 304 阅读 · 0 评论 -
poj3468
1.#include #include #include #include #include #include #include #include #include #include #include #include #include #include#include#include#includeusing namespace std;#define I原创 2016-10-14 13:09:28 · 330 阅读 · 0 评论 -
K-th Number(poj2104)线段树维护区间+平方分割+二分搜索
来自《挑战程序设计竞赛》1.题目原文http://poj.org/problem?id=2104K-th NumberTime Limit: 20000MS Memory Limit: 65536KTotal Submissions: 50565 Accepted: 17253Case Time Limit: 20原创 2016-10-14 17:02:00 · 570 阅读 · 0 评论 -
线段树模板:点修改,区间修改
最近在看《算法竞赛入门经典训练指南》, 感觉以前的想法几乎完全是错的,模板并不一定能直接套。最近在看线段树,才知道线段树每个节点的附加信息才是重头戏,因此完全套模板是不可行的。但是思想方法可以借鉴,并在此基础上 加以改进。1.点修改给出一个有n个元素的数组A[1],A[2],……A[n]。任务是设计一个数据结构,支持以下两种操作:①update(x,v):把A[x]修改为v。②原创 2016-10-10 17:00:59 · 1603 阅读 · 0 评论