代码:

#include<bits/stdc++.h>
using namespace std;
int n,m;
int book[101010];
vector<int>a[1010100];
int main()
{int i,j,k,x,y;cin>>n>>m;//保证从1开始记录,提前向数组中存入一个数for(i=1;i<=n;i++){a[i].push_back(0);}for(i=1;i<=n;i++){cin>>k;for(j=0;j<k;j++){cin>>x;a[i].push_back(x);}}k=1;while(m--){scanf("%d%d",&x,&y);if(x==0){k=a[k][y];}if(x==1){book[y]=k;printf("%d\n",k);//k=book[y];}if(x==2){k=book[y];}//cout<<k<<endl;}cout<<k;
}

题目:

哲哲是一位硬核游戏玩家。最近一款名叫《达诺达诺》的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切!

为简化模型,我们不妨假设游戏有 N 个剧情点,通过游戏里不同的操作或选择可以从某个剧情点去往另外一个剧情点。此外,游戏还设置了一些存档,在某个剧情点可以将玩家的游戏进度保存在一个档位上,读取存档后可以回到剧情点,重新进行操作或者选择,到达不同的剧情点。

为了追踪硬核游戏玩家哲哲的攻略进度,你打算写一个程序来完成这个工作。假设你已经知道了游戏的全部剧情点和流程,以及哲哲的游戏操作,请你输出哲哲的游戏进度。

输入格式:

输入第一行是两个正整数 N 和 M (1≤N,M≤105),表示总共有 N 个剧情点,哲哲有 M 个游戏操作。

接下来的 N 行,每行对应一个剧情点的发展设定。第 i 行的第一个数字是 Ki​,表示剧情点 i 通过一些操作或选择能去往下面 Ki​ 个剧情点;接下来有 Ki​ 个数字,第 k 个数字表示做第 k 个操作或选择可以去往的剧情点编号。

最后有 M 行,每行第一个数字是 0、1 或 2,分别表示:

  • 0 表示哲哲做出了某个操作或选择,后面紧接着一个数字 j,表示哲哲在当前剧情点做出了第 j 个选择。我们保证哲哲的选择永远是合法的。
  • 1 表示哲哲进行了一次存档,后面紧接着是一个数字 j,表示存档放在了第 j 个档位上。
  • 2 表示哲哲进行了一次读取存档的操作,后面紧接着是一个数字 j,表示读取了放在第 j 个位置的存档。

约定:所有操作或选择以及剧情点编号都从 1 号开始。存档的档位不超过 100 个,编号也从 1 开始。游戏默认从 1 号剧情点开始。总的选项数(即 ∑Ki​)不超过 106。

输出格式:

对于每个 1(即存档)操作,在一行中输出存档的剧情点编号。

最后一行输出哲哲最后到达的剧情点编号。

输入样例:

10 11
3 2 3 4
1 6
3 4 7 5
1 3
1 9
2 3 5
3 1 8 5
1 9
2 8 10
0
1 1
0 3
0 1
1 2
0 2
0 2
2 2
0 3
0 1
1 1
0 2

输出样例:

1
3
9
10

样例解释:

简单给出样例中经过的剧情点顺序:

1 -> 4 -> 3 -> 7 -> 8 -> 3 -> 5 -> 9 -> 10。

档位 1 开始存的是 1 号剧情点;档位 2 存的是 3 号剧情点;档位 1 后来又存了 9 号剧情点。

哲哲打游戏(读清题意)相关推荐

  1. 哲哲打游戏(简单模拟,重点理解题意)

    代码: #include<bits/stdc++.h> using namespace std; #define N 100005 int n,m; vector<int> v ...

  2. L2-040 哲哲打游戏 (25 分)(分析题目意思,读懂题)

    哲哲是一位硬核游戏玩家.最近一款名叫<达诺达诺>的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切! 为简化模型,我们不妨假设游戏有 N 个剧情点,通过游戏里不同的操作或选择 ...

  3. L2-040 哲哲打游戏 (25 分)

    哲哲是一位硬核游戏玩家.最近一款名叫<达诺达诺>的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切! 为简化模型,我们不妨假设游戏有 N 个剧情点,通过游戏里不同的操作或选择 ...

  4. GPLT L2-040 哲哲打游戏 (25 分)

    题目: 哲哲是一位硬核游戏玩家.最近一款名叫<达诺达诺>的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切! 为简化模型,我们不妨假设游戏有 N 个剧情点,通过游戏里不同的操 ...

  5. L2-040 哲哲打游戏 (25 分)-PAT 团体程序设计天梯赛 GPLT

    哲哲是一位硬核游戏玩家.最近一款名叫<达诺达诺>的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切! 为简化模型,我们不妨假设游戏有 N 个剧情点,通过游戏里不同的操作或选择 ...

  6. 哲哲打游戏 (25 分)

    7-12 哲哲打游戏 (25 分) 哲哲是一位硬核游戏玩家.最近一款名叫<达诺达诺>的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切! 为简化模型,我们不妨假设游戏有 N  ...

  7. L2-040 哲哲打游戏 (25 分)(模拟)

    哲哲是一位硬核游戏玩家.最近一款名叫<达诺达诺>的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切! 为简化模型,我们不妨假设游戏有 N 个剧情点,通过游戏里不同的操作或选择 ...

  8. L2-040 哲哲打游戏 (25 分)2021天梯赛c++

    哲哲是一位硬核游戏玩家.最近一款名叫<达诺达诺>的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切! 为简化模型,我们不妨假设游戏有 N 个剧情点,通过游戏里不同的操作或选择 ...

  9. L2-4 哲哲打游戏 (25 分)

    L2-4 哲哲打游戏 (25 分) 哲哲是一位硬核游戏玩家.最近一款名叫<达诺达诺>的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切! 为简化模型,我们不妨假设游戏有 N  ...

最新文章

  1. 重磅消息:蚂蚁金服推出RPC框架
  2. 暴汗,今天遇到个奇事
  3. 2-09 CentOS系统参数优化
  4. 第二次Java作业2
  5. 大数据挖掘在销售管理中的应用价值
  6. python数据分析需要哪些库-用python进行数据分析的五个最常用库
  7. testbench简介
  8. mysql数据库基本知识
  9. Linux程序设计第二版练习题(第五章)
  10. 好爽 java_JAVA Web学习(27)___第21章清爽夏日九宫格日记网
  11. python hist2d_Matplotlib(hist2D)中的2D直方图是如何工作的?
  12. Socket套接字,一个简单的聊天室案例!
  13. Datatables表格插件学习
  14. python行业中性_Python抓取分析淘宝连衣裙数据,128元真的是低价人群分界线吗?...
  15. 文案撰写技巧,感人文案的4大技巧
  16. 二进制以上的计算机,计算机中的二进制
  17. 数据库数据采集利器FlinkCDC
  18. java 多个线程同时写同一个文件
  19. HTML如何设置幻灯片大小和位置,javascript – 动态调整skitter幻灯片图像大小
  20. python中导入pillow时显示没有名为“pillow”的模块(import pillow: No module named 'pillow')

热门文章

  1. c++ 已知直线外一点,求对称点
  2. 常见数据结构的特点—收藏
  3. 【观点】区块链手机说到底还是伪命题
  4. Edge解决默认Bing搜索跳转到国内版的问题
  5. 如何重现难以重现的bug
  6. 笨nanana教你Swing开发入门(亲自码字,通俗易懂,正在完善得更好)
  7. 男人为什么容易掉头发?
  8. 把一个运行的Docker容器做成镜像
  9. ubuntu14.04下Andriod2.3.1编译环境的搭建
  10. 第三章程序的机器级表示 学习报告