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

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

为简化模型,我们不妨假设游戏有 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 号剧情点。

#include<iostream>
#include<vector>
using namespace std;
const int N=100010,M=110;
int n,m;
vector<int>g[N];
int record[M];
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){int cnt;scanf("%d",&cnt);while(cnt--){int x;scanf("%d",&x);g[i].push_back(x);}}int p=1;while(m--){int a,b;scanf("%d%d",&a,&b);if(a==0){p=g[p][b-1];}else if(a==1){record[b]=p;printf("%d\n",p);}else{p=record[b];}}printf("%d",p);return 0;
}

L2-4 哲哲打游戏 (25 分)相关推荐

  1. 哲哲打游戏 (25 分)

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

  2. 7-6 哲哲打游戏 (25 分)

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

  3. PTA_2021年团体程序设计天梯赛_总决赛_L2-4 哲哲打游戏 (25 分)_搞心态_简单模拟

    // 输出格式: 对于每个 1(即存档)操作,在一行中输出存档的剧情点编号.最后一行输出哲哲最后到达的剧情点编号.输入样例: 10 11 3 2 3 4 1 6 3 4 7 5 1 3 1 9 2 3 ...

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 管理敏捷迭代任务和任务协作
  2. HDU 3826 Squarefree number:题目解答源码
  3. 小程序如何用data的数据控制页面展示_17. 教你零基础搭建小程序:小程序事件绑定(1)
  4. java引用其他类的数据头文件_Java 实现数据表与简单Java类映射转换
  5. linux为启动菜单加密码
  6. 2020ICPC(小米邀请赛1) - Phone Network(线段树优化递推)
  7. 1.5编程基础之循环控制_45金币
  8. 计算机系统-电路设计08-T触发器内部电路实现
  9. 大道至简——编程的精义
  10. linux之pkill命令
  11. 【Python-3.5】绘制世界人口地图
  12. python从入门到精通 清华大学出版社-清华大学出版社-图书详情-《Python语言程序设计》...
  13. 《C++标准程序库》——STL迭代器
  14. Visual Studio 2019设置透明背景图片
  15. 比较全面的log4j配置
  16. 9.4 基础和应用的平衡中找到大学的节奏——《逆袭大学》连载
  17. 【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(20):用配方法化二次型为标准形
  18. Win7安装VisualC++6.0全程图解
  19. AJAX之封装+跨域
  20. CLOUD云计算进阶(三)-云平台部署与管理

热门文章

  1. python字典有什么用_什么是python字典??
  2. 「雕爷学编程」Arduino动手做(20)—水银开关模块
  3. python字符串常用函数-大小写,删除空格,字符串切片
  4. @Service注解的作用
  5. 记一次修改redis需要外部访问
  6. PHP学习(语言结构语句)
  7. UVa 1642 (综合) Magical GCD
  8. Forms Builder常用函数
  9. git repo使用心得
  10. jQuery中文手册, jQuery API, jQuery UI, 分页插件 下载