首页 > 代码库 > [?]
[?]
1 #include<stdio.h> 2 #include<cstring> 3 #define go(i,a,b) for(int i=a;i<=b;i++) 4 const int N=100003;struct Chair_Man_Tree{int l,r,word;}t[N*10]; 5 int q,Root[N],sz,rig[N],mid; 6 void insert(int& u,int L,int R,int pos,char w) 7 { 8 t[++sz]=t[u];u=sz;if(L==R){t[u].word=w;return;}mid=L+R>>1; 9 pos>mid?insert(t[u].r,mid+1,R,pos,w):insert(t[u].l,L,mid,pos,w);10 }11 void find(int u,int L,int R,int pos)12 {13 if(L==R){printf("%c\n",t[u].word);return;}mid=L+R>>1;14 pos>mid?find(t[u].r,mid+1,R,pos):find(t[u].l,L,mid,pos);15 }16 int main()17 {18 scanf("%d",&q);int now=0,i=0;go(I,1,q)19 {20 char c1,c2;int j;scanf(" %c",&c1);21 if(c1==‘T‘)i++,scanf(" %c",&c2),Root[i]=Root[i-1],insert(Root[i],1,N,++now,c2),rig[i]=now;22 if(c1==‘U‘)i++,scanf("%d",&j),j=i-j-1,Root[i]=Root[j],now=rig[i]=rig[j];23 if(c1==‘Q‘)scanf("%d",&j),find(Root[i],1,N,j);24 }25 return 0;26 }//Paul_Guderian
[?]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。