码迷,mamicode.com
首页 > 其他好文 > 详细

[?]

时间:2017-05-13 16:53:32      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:src   padding   top   logs   har   word   fine   cstring   scanf   

技术分享

 

 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

 

[?]

标签:src   padding   top   logs   har   word   fine   cstring   scanf   

原文地址:http://www.cnblogs.com/Paul-Guderian/p/6849209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!