题目

https://oj.xjtuicpc.com/problem/1323

思路

题目说明有点绕。

然后我们仔细观察一下,这个东西很显然是一个天然的树形结构。

我们可以把一个空间(或者一个数)当成结点,门当成边,然后这个问题就是在树上边上上下下,支持随时加点删点和输出子结点。

然后一个大模拟就过了。

插入和删除很讨厌,可以直接用vector省得手写。

大水题一道,然而赛时降智打击加上前面的题一直pending心态爆炸,没调出来。

每次打比赛都状态奇差,属实丢人,感觉还是得多打多练。。。

代码

点击查看代码
#include<cstdio>
#include<cstdlib>
#include<vector>
#define maxn 100010
using namespace std;
int fa[maxn],idx=1,val[maxn];
vector<int> son[maxn];
int main(){
int i,j,q,p,v,op;
int pos=1;
scanf("%d",&q);
for(i=1;i<=q;++i){
scanf("%d",&op);
if(op==1){
scanf("%d%d",&p,&v);
son[pos].insert(son[pos].begin()+p,++idx);
fa[idx]=pos;
val[idx]=v;
}
if(op==2){
scanf("%d",&p);
son[pos].erase(son[pos].begin()+p-1);
}
if(op==3){
scanf("%d",&p);
if(!p){
if(fa[pos]) pos=fa[pos];
}
else{
if(!val[son[pos][p-1]]) pos=son[pos][p-1];
}
}
if(op==4){
int k=son[pos].size();
printf("{");
for(j=0;j<k;++j){
if(val[son[pos][j]]) printf("%d",val[son[pos][j]]);
else printf("[]");
if(j<k-1) printf(" ");
}
printf("}\n");
}
}
// system("pause");
return 0;
}

最新文章

  1. 【BZOJ-1026】windy数 数位DP
  2. Posix消息队列
  3. SQL Server 2012 Enterprise Core Edition和SQL Server 2012 Enterprise Edition的区别
  4. HeadFirst Jsp 04 (请求和响应作为servlet)
  5. Hash - a javascript dictionary object.
  6. uva10561 - Treblecross
  7. OD: DEP &amp; Ret2Libc
  8. 游览器对js加载的次序
  9. MFC中模态对话框和非模态对话框的差别
  10. SQL语句取多列的最小值(排除0)
  11. BFC原理剖析
  12. unbuntu 16.04.2 安装 Eclipse C++开发环境
  13. js面向对象插件的做法框架new goBuy(&#39;.cakeItem&#39;,{ add:&#39;.add&#39;, reduce:&#39;.reduce&#39; },[1,0.7,0.6]);
  14. C/C++ 打开串口和关闭串口
  15. asp.net web api 安装swagger
  16. js 正则常用函数
  17. 软银集团和共享办公空间公司WeWork在日本成立合资公司
  18. POI 导出文件 报空指针异常 --Docker 中
  19. Java学习笔记(八)——java多线程
  20. ASP.NET MVC5(一)—— URL路由

热门文章

  1. js截取数组
  2. JVM(二) --- JVM的内存结构
  3. Angular单页应用程式 (SPA)+Azure AD重新导向登入
  4. HIVE- INSERT 方法使用
  5. 1. ansible学习总结: 基础模块
  6. application.yaml
  7. GitHub创建仓库导入项目
  8. Quartz 2D实现文字镂空效果
  9. POD一些概念
  10. linux升级系统内核版导致死锁