当前位置: 首页 > news >正文

哈尔滨学校网站建设/西安百度快照优化

哈尔滨学校网站建设,西安百度快照优化,厦门哪些企业做视频网站的,科技资讯网站开发大纲学习一下rope做一下笔记..... 头文件 #include <ext/rope> 文件头 using namespace __gnu_cxx; 变量声明 rope<Type> x; 成员函数 size() O(1)放心用. push_back(v) 不解释 push_front(v) ..... insert(p,v) 在位置p插入元素v. 插入后使用x[v]调用. 也就是说insert…

学习一下rope做一下笔记.....

 

头文件

#include <ext/rope>

文件头

using namespace __gnu_cxx;

变量声明

rope<Type> x;

 

成员函数

size() O(1)放心用.

push_back(v) 不解释

push_front(v) .....

insert(p,v) 在位置p插入元素v. 插入后使用x[v]调用. 也就是说insert(0,v)表示在队头插入v,也就是push_front(v).

insert(p,s,v) 在位置p插入s个元素v.插入的第一个元素的下标是p,原来在位置p的元素现在在位置p+s.

append(s,v) 在末尾增加s个元素v. 简直是没用的函数....

erase(p) 删除位置p后面(包括位置p)所有的元素. 果断被坑了一发.

erase(p,s) 从位置p开始(包括位置p)删除s个元素.

operator[k] 取值....

由于使用平衡树实现,多数函数都是 $O(\log{n})$ 或者 $O(s\log{n})$ 的.

呃,简单的操作还是尽量不要用insert,多用push和append,不然比较慢=.=....

 

接下来是rope特色...

 

rope<Type>(t) 呃....构造函数.t是另一个rope.时间复杂度是 $O(1)$ 的!!!!

 

1 rope<int>*x=new rope<int>;
2 rope<int>*t;
3 for(int i=0;i<100000;i++)
4 {
5     x->append(10,1);
6     t=new rope<int>(*x);
7 }

耗时1203ms.

 

1 rope<int>*x=new rope<int>;
2 rope<int>*t;
3 for(int i=0;i<100000;i++)
4 {
5     t=new rope<int>(*x);
6     t->append(10,1);
7 }

耗时359ms.

 

 

使用方法

0.修改元素的值: 虽然重载了方括号运算符但是赋值是不可以的....用erase+insert....

1.遍历: for(int i=0;i<x.size();i++) {...};  iterator 似乎不能用......

2.可持久化:

t[i]=new rope<int>(*t[i-1]);

对整个树可持久化.

 

 

 

AC BZOJ 3673 可持久化并查集

 1 #include <cstdio>
 2 #include <fstream>
 3 #include <iostream>
 4  
 5 #include <cstdlib>
 6 #include <cstring>
 7 #include <algorithm>
 8 #include <cmath>
 9  
10 #include <queue>
11 #include <vector>
12 #include <map>
13 #include <set>
14 #include <stack>
15 #include <list>
16  
17 typedef unsigned int uint;
18 typedef long long int ll;
19 typedef unsigned long long int ull;
20 typedef double db;
21 typedef long double ldb;
22  
23 using namespace std;
24  
25 inline int getint()
26 {
27     int res=0;
28     char c=getchar();
29     bool mi=false;
30     while((c<'0' || c>'9')/* && !feof(stdin)*/) mi=(c=='-'),c=getchar();
31     while('0'<=c && c<='9'/* && !feof(stdin)*/) res=res*10+c-'0',c=getchar();
32     return mi ? -res : res;
33 }
34 inline ll getll()
35 {
36     ll res=0;
37     char c=getchar();
38     bool mi=false;
39     while(c<'0' || c>'9') mi=(c=='-'),c=getchar();
40     while('0'<=c && c<='9') res=res*10+c-'0',c=getchar();
41     return mi ? -res : res;
42 }
43 
44 //==============================================================================
45 //==============================================================================
46 //==============================================================================
47 //==============================================================================
48 
49 #include <ext/rope>
50 using namespace __gnu_cxx;
51 
52 int n,m;
53 
54 typedef rope<int> rp;
55 rp*t[400050];
56 
57 void change(int x,int v,rp&F)
58 { F.erase(x,1); F.insert(x,v); }
59 
60 int findf(int x,rp&F)
61 { while(F[x]!=x) x=F[x]; return x; }
62 
63 void connect(int a,int b,rp&F)
64 { change(findf(a,F),findf(b,F),F); }
65 
66 int main()
67 {
68     n=getint();
69     m=getint();
70     
71     t[0]=new rp;
72     for(int i=0;i<n;i++) t[0]->push_back(i);
73     
74     for(int i=1;i<=m;i++)
75     {
76         int c=getint();
77         if(c==1)
78         {
79             int a=getint()-1;
80             int b=getint()-1;
81             t[i]=new rp(*t[i-1]);
82             if(findf(a,*t[i])!=findf(b,*t[i])) connect(a,b,*t[i]);
83         }
84         else if(c==2)
85         {
86             t[i]=t[getint()];
87         }
88         else if(c==3)
89         {
90             t[i]=t[i-1];
91             int a=getint()-1;
92             int b=getint()-1;
93             printf("%d\n",findf(a,*t[i])==findf(b,*t[i]));
94         }
95     }
96     
97     return 0;
98 }
View Code

加强版居然不是TLE而是MLE.....

(可持久化)平衡树还是比不上(可持久化)线段树.....不管在空间上还是时间上....

 

 

....

转载于:https://www.cnblogs.com/DragoonKiller/p/4600243.html

http://www.lbrq.cn/news/788563.html

相关文章:

  • wordpress 备份恢复/seo是什么及作用
  • 外贸网站都有那些/app开发
  • 网站以个人名义备案/360优化大师最新版的功能
  • 企业app开发的公司/seo优化技巧有哪些
  • 网站制作有哪些创新/网销是什么工作好做吗
  • 网站本地可以打开/免费b站在线观看人数在哪儿
  • 濮阳网站建设优化/网站服务器信息查询
  • 西安有哪些网站建设公司/上海做网站优化
  • 陇西哪里能学做网站/台州seo
  • 天目建设集团 网站/营销课程培训视频
  • 商城网站建设推广/近期国内外重大新闻10条
  • 服装公司网站规划建设/广州网络营销的推广
  • 网站建设的id调用怎么操作/百度网盘搜索引擎入口官网
  • wordpress文章同步/刷seo快速排名
  • 磁力bt种子搜索/免费seo公司
  • 做折扣的网站有哪些/搜索网站排名
  • 烟台网站建设/seo研究中心教程
  • 服装公司网站结构/泉州排名推广
  • 网站建设运营/长春网站推广公司
  • 怎么建设一个区块链资讯网站/2022百度指数排名
  • 视差滚动网站怎么做/女孩短期技能培训班
  • 苹果网站上物体阴影怎么做的/深圳关键词优化怎么样
  • 太原做网站页面的/灰色行业关键词优化
  • 网站开发用什么编程语言/网站优化流程
  • 美食网站开发毕业设计/竞价推广怎么样
  • 网站开发毕业设计报告/b2b平台有哪几个
  • 洛阳网站建设 培训/seo优化首页
  • 教育行业网站制作/杭州网站排名提升
  • 澄江网站制作/互联网seo是什么意思
  • 河南郑州网站制作/百度竞价和优化的区别
  • 小鹏汽车前端面经
  • STM32_Hal库学习SPI
  • 优选算法 力扣 11. 盛最多水的容器 双指针降低时间复杂度 贪心策略 C++题解 每日一题
  • 力扣面试150题--加一
  • 【实战】Dify从0到100进阶--中药科普助手(1)
  • 案例介绍|JSON数据格式的转换|pyecharts模块简介