CVS
来源:互联网 发布:水果软件12教程 编辑:程序博客网 时间:2024/06/04 18:32
原题地址:点击打开链接
【分析】
。。函数式链表
【代码】
/************************** ID:Ciocio LANG:C++ DATE:2014-1-26 TASK:CVS**************************/#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <iostream>#include <algorithm>#include <queue>using namespace std;#define MAXN 1<<20struct node{node *l,*r;int p;}Pool[MAXN],*New=Pool;node* c[MAXN];int N,M,cs;node* Get(node* l,int p,node* r){New->l=l;New->p=p;New->r=r;return New++;}void _init(){cin>>N>>M;}node* Learn(node* x,int p){return Get(x,p,0);}node* Rollback(node* x){return Get(x->l->l,x->l->p,x);}node* Relearn(node* x){return Get(x,x->r->p,x->r->r);}node* Clone(node* x){return Get(x->l,x->p,x->r);}int Check(node* x){return x->p;}void _solve(){char Commend[10];int a,b;c[cs++]=Get(0,0,0);while(N--){scanf("%s%d",&Commend,&a);a--;if(!strcmp(Commend,"learn")){scanf("%d",&b);c[a]=Learn(c[a],b);}else if(!strcmp(Commend,"rollback")){c[a]=Rollback(c[a]);}else if(!strcmp(Commend,"relearn")){c[a]=Relearn(c[a]);}else if(!strcmp(Commend,"clone")){c[cs++]=Clone(c[a]);}else{int pt=Check(c[a]);if(pt) printf("%d\n",pt);else printf("basic\n");}}}int main(){_init();_solve();return 0;}
0 0
- CVS
- cvs
- CVS
- CVS
- cvs
- cvs
- cvs
- cvs
- CVS
- CVS
- cvs
- cvs
- cvs
- cvs
- CVS
- CVS
- cvs
- CVS
- android:textAlignment 参数解释
- 文件I/O操作之open 的O_APPEND参数
- Android中Bitmap、Drawable、byte[]转换
- js正则表达式把不符合条件的字符替换处理(总结)
- 教你使用阿里云服务器挂载数据盘
- CVS
- spring mvc框架下controller中如何读取properties文件内容
- uva----10905
- Android应用卸载器
- 九度OJ 1084: 整数拆分
- CSS入门之文本样式用法(文本对齐,首行缩进,文本竖排,文字方向)
- UVA10035
- uva----10474
- Ubuntu的简单环境配置