传送门:cogs2314
题解
非旋treap的模板题。把字符串的信息按输入顺序记在treap上,每个节点存一个字符。插入字符串和输出都直接暴力找(长度保证)
代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+1000;
int rt[N],tim,cnt;
int n,op,ix,iy,iz,len,D;
char s[255];
namespace bst{
#define ls t[x].lc
#define rs t[x].rc
#define mid (((l)+(r))>>1)
struct node{
int lc,rc,ss,rd;char c;
node(){
}
node(int L,int R,int S,int RR,char C){
lc=L,rc=R,ss=S,rd=RR,c=C;}
}t[N*50];
inline void pushup(int x){
t[x].ss=t[ls].ss+t[rs].ss+1;}
inline int newnode(char v){
t[++cnt]=node(0,0,1,rand(