C++ STL rope介绍----可持久化平衡树
大致介绍:
rope这个东西,我刚刚知道这玩意,用的不是很多,做个简单的介绍。
官方说明:我是刘邦(我估计你是看不懂的)。
rope就是一个用可持久化平衡树实现的“重型”string(然而它也可以保存int或其他的类型),它不是标准STL里的东西,属于STL扩展。
crope即rope<char>,就是一个“重型”string,且可以用cin/cout直接输入输出。
速度么,我并不知道,应该还可以,不过应该没有手写的快。
比赛的话,我不大清楚,据我所知Cena是不支持的。然而如果你会写可持久化平衡树,还用这个干什么?
具体操作:
它的定义在#include<ext/rope>中,需要using namespace __gnu_cxx。
例如:
#include<ext/rope>
using namespace __gnu_cxx;
rope<int> *f[10000];
int main(){}
如何让它“可持久化”呢?
f[i]=new rope<int>(*f[i-1]);
这样做可以用O(1)的时间得到它的历史版本,就做到了可持久化。
rope的基本操作有:
x.insert(pos,s) 在pos位置插入s
如果需要翻转平衡树,就维护一正一反两个rope,翻转就把两个rope交换一下就行了。
然而我知道的只有这么点了,如果您觉得有什么不足,可以告诉我。
C++ STL rope介绍----可持久化平衡树的更多相关文章
- [rope大法好] STL里面的可持久化平衡树--rope
简单用法: #include <ext/rope> using namespace __gnu_cxx; int a[1000]; rope<int> x; rope<i ...
- [cogs2314][HZOI 2015] Persistable Editor - 可持久化平衡树
[cogs2314][HZOI 2015]Persistable Editor - 可持久化平衡树 题目链接 首先吐槽扯淡几句 [题目描述] 维护一种可持久化的文本编辑器,支持下列操作: 1 p st ...
- 【LG3835】可持久化平衡树
[LG3835]可持久化平衡树 题面 洛谷 解法一 参考文章 rope大法好 \(rope\)基本操作: #include<ext/rope> using namespace __gnu_ ...
- luoguP3835 [模板]可持久化平衡树
https://www.luogu.org/problemnew/show/P3835 因为博主精力和实力有限,学不懂 fhq treap 了,因此只介绍 leafy tree 解法 leafy tr ...
- 可持久化Trie & 可持久化平衡树 专题练习
[xsy1629]可持久化序列 - 可持久化平衡树 http://www.cnblogs.com/Sdchr/p/6258827.html [bzoj4260]REBXOR - Trie 事实上只是一 ...
- [Luogu 3835]【模板】可持久化平衡树
Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作(对于各个以往的历史版本): 插入x数 删除x数(若有多个相同的数,因只删除一个,如果没有请忽略该操作 ...
- 洛谷P3835 【模板】可持久化平衡树
题目背景 本题为题目 普通平衡树 的可持久化加强版. 数据已经经过强化 感谢@Kelin 提供的一组hack数据 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作( ...
- P3835 【模板】可持久化平衡树
题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作(对于各个以往的历史版本): 插入x数 删除x数(若有多个相同的数,因只删除一个,如果没有请忽略该操作) 查询x数的 ...
- STL 算法介绍
STL 算法介绍 算法概述 算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. <algorithm ...
随机推荐
- DDD中Dto领域驱动设计概述,摘自《NET企业级应用架构设计》
- spring-session与redis实现session共享
一.准备 两个不同端口号的输出request.getLocalPort() + " ---> " + request.getSession(true).getId()的简单S ...
- 如何在React-Native上使用Typescript
首先安装脚手架: $ yarn global add create-react-native-app 创建项目: create-react-native-app xxx 进入项目并启动: cd xxx ...
- 【bzoj 1502】月下柠檬树
月下柠檬树 题意 求n个圆与他们的公切线的定积分. 解法 求出圆的公切线就可以了. 特别坑的一点 : 最两端的圆,有可能会被其他的圆所包含,所以要重新求一下最左端与最右端. 比较坑的一点 : 精度要设 ...
- 安装虚拟机和Linux系统
- 安装虚拟机 点击下载虚拟机 点击下载Linux系统 菜鸟网的Linux系统教程 1.安装虚拟机 在弹出的面板中选择标准--继续. 选择第二个选项,因为我们下载的光盘的镜像,所以直接选择刚才的dvd ...
- 表单标签 fieldset legent
书写表单时可以提供简单样式的标签 <fieldset> <legent></legent> <input type="text" > ...
- FPGA视频拼接器的放大和缩小功能
视频视频器能够把信号源放大和缩小. 对于我们的拼接器而言,它的架构这种: 信号源进入到拼接器中.先进入缩小模块.然后存进DDR中.然后从DDR中读出视频.进入到放大模块,最后依据屏幕的位置,输出到屏幕 ...
- Flutter 1.5 发布,正式成为全平台 UI 框架!
一. 序 在 Google I/O 2019 上,Dart 团队宣布推出新的 Flutter 稳定版本 1.5,这是 Flutter 迄今为止最大的一次版本发布. 伴随着 Flutter 1.5 的发 ...
- nyoj--233--Sort it (水题)
Sort it 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 You want to processe a sequence of n distinct integer ...
- xBIM 基础11 WeXplorer 常用事件
系列目录 [已更新最新开发文章,点击查看详细] 本篇将介绍查看器在不同场合触发的事件.所有这些都记录在xViewer中. 如果您从Web服务器运行本教程,可以在此处查看完整的实例.并且确保您的 ...