题解 P3850 【[TJOI2007]书架】
这题感觉用啥方法都能水过去。
比如 vector,块链。
介绍一种神仙级别的 STL 数据结构:rope。
(表面上大概可以理解为进阶版的 vector)
这个丧心病狂的东西支持
然后就很简单了,,,
您以为这是基于平衡树的?
no,是基于可持久化平衡树的,底层是红黑树。
所以支持
可以水大部分的可持久化题目。
#include<bits/stdc++.h>
#include<ext/rope>
using namespace std;
using namespace __gnu_cxx;
rope<int> a;
string t[200005];
int main()
{
int n,x;
string p;
scanf("%d",&n);
while(n--)
{
cin>>t[a.size()];
a.push_back(a.size());
}
scanf("%d",&n);
while(n--)
{
cin>>t[a.size()];
scanf("%d",&x);
a.insert(x,a.size());
}
scanf("%d",&n);
while(n--)
{
scanf("%d",&x);
cout<<t[a[x]]<<endl;
}
}