代码:

#include<bits/stdc++.h>
using namespace std;
#define N 100005
int n,m;
vector<int> v[N];
int book[N];
int main()
{cin>>n>>m;for(int i=1;i<=n;i++){int k;cin>>k;v[i].push_back(0);for(int j=0;j<k;j++){int x;cin>>x;v[i].push_back(x);}}int k=1;    //表示当前位置for(int i=0;i<m;i++){int choice,j;cin>>choice>>j;if(choice==0)    //选择{k=v[k][j];   //当前位置的第j个选择}else if(choice==1)   //存档{book[j]=k;    //记录放在第j个档位的数字cout<<k<<endl;}else if(choice==2)  //读档{k=book[j];    //读取放在第j个档位的数字}}cout<<k<<endl;return 0;
}

题目:

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

为简化模型,我们不妨假设游戏有 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. 音乐游戏 简单模拟,字符串,cin.get,getchar,流同步(女赛)

    结论 : 如果要关闭流同步ios::sync_with_stdio(false),就不能使用getchar()getchar()getchar(),但可以改用cin.get()cin.get()cin ...

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

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

  3. L2-040 哲哲打游戏 (25 分)动态数组 纯模拟

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

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

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

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

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

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

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

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

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

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

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

  9. 哲哲打游戏 (25 分)

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

最新文章

  1. html 列表bootstrap,bootstrap都有哪些类?
  2. 来自mooon的最简单的日志类CSimpleLogger
  3. 木棍分割[HAOI2008]
  4. Centos下安装MongoDB复制集
  5. windows server 查看 删除事件_蓝队护网 之Windows服务器加固
  6. html 加粗_若想学前端开发,要从HTML基本元素开始第一节
  7. java ajax 点赞功能_Ajax+jQuery+bootstrap+Java实现异步点赞功能,并限制点击次数
  8. [原创]同一个Tomcat,配置多个context、多个Host
  9. 常用的服务器系统,常用的服务器操作系统
  10. C++——《算法分析》实验壹——二分搜索算法
  11. [转]EntityFramework走马观花之CRUD(中)
  12. 饮一盏Bug留香,唱一曲项目飞扬
  13. 支持异步通知的globalfifo平台设备驱动程序及其测试代码
  14. MFC编程记录--图片控件类
  15. Maven错误:was cached in the local repository, resolution will not be reattempted until the update
  16. poj 3345 Bribing FIPA 树形dp
  17. java中 implement_详解JAVA中implement和extends的区别
  18. mysql建数据库实例_MySQL数据库基础(四)——MySQL数据库创建实例
  19. 计算机创造奇迹的英语作文,大学英语作文:创造奇迹 Creating Miracle
  20. 跨站请求伪造(CSRF)攻击

热门文章

  1. 智能家居设备可能被利用变成家庭虐待的工具
  2. licheepi nano BS8112A触摸按键
  3. 禅道提bug页面-修改重现步骤的默认模板
  4. 古剑奇谭ol服务器维护,古剑奇谭ol12月13日更新维护公告 网络版更新了什么
  5. ECMAScript重点复习(一)
  6. 联果云全媒体广告是什么?现在创业做这个项目合适么?
  7. 史上最直白的ICA教程之一
  8. c语言写一个测试缘分的程序,【心理测试】测你的缘分能求来吗
  9. 微信小程序驾校教培服务系统+后台管理系统|前后分离VUE
  10. nokia n1 android 6,到手的NOKIA 诺基亚 N1平板 — 王者归来?呵呵