
数据结构
OIerGH
某OIER
展开
-
常用算法复杂度
找了好久,求顶!转载 2017-01-17 15:24:41 · 518 阅读 · 0 评论 -
{算法}浅析线段树
线段树是一种简单而实用的算法。 线段树是一棵二叉树,而且是一颗完全二叉树。顾名思义,线段树的每一个节点表示一个区间,如图: 以最大值问题为例: 给你一个数列,每次询问区间最大值是多少。maketree:根节点表示1~n的区间最大值,然后将这个区间分成两半,它的两个子节点分别表示这两个区间的最大值,这样我们就可以构造一个线段树。void maketree(int t,int l,int r){原创 2016-08-23 15:56:47 · 5632 阅读 · 0 评论 -
浅谈splay
例题: 给出一个长度为n序列a。 有m次操作,每次操作可以修改a[i],在第i个数前插入一个数x,或查询区间[l,r]的最大值。 1≤n≤100000,1≤m≤100000。 强制在线看到这道题最自然的反应就是用线段树,但有了插入操作线段树就不好处理了,需要离线才能做。而题目又要求强制在线,我们就只能使用splay了什么是splay?spl原创 2017-08-28 18:46:52 · 4720 阅读 · 0 评论 -
c++中set的用法
关于STLC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让用户在S...原创 2018-08-17 20:57:11 · 1237 阅读 · 0 评论 -
jzoj 5821. 【NOIP提高A组模拟2018.8.16】 手机信号(set)
DescriptionInput第一行由一个空格隔开的两个正整数 m, c,意义见题目描述。 接下来 m 行,每行可能有以下形式: construct l r v 代表发生了第一种事件; destruct l r 代表发生了第二种事件; query x 代表发生了第三种事件。Output对于每个 query 操作,请输出一行一个整数代表此时坐标 x 处的信号强度...原创 2018-08-17 20:30:00 · 465 阅读 · 0 评论