首页 > 其他分享 >L2-040 哲哲打游戏

L2-040 哲哲打游戏

时间:2023-03-24 16:24:49浏览次数:42  
标签:游戏 哲哲 存档 档位 打游戏 剧情 L2 include

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

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

代码长度限制 16 KB Java (javac) 时间限制 800 ms 内存限制 64 MB Python (python3) 时间限制 1000 ms 内存限制 64 MB   ***不知道为什么,这道题的vector如果不放全局变量,就没法输入值。
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<vector>
 6 using namespace std;
 7 vector<int> g[100005];
 8 int main()
 9 {
10     int record[110];
11     int n,m,i,j,k,x;
12     scanf("%d%d",&n,&m);
13     for(i = 1;i <= n;i++)
14     {
15         scanf("%d",&k);
16         for(j = 1;j <= k;j++)
17         {
18             scanf("%d",&x);
19             g[i].push_back(x);
20         }
21     }
22     int fin = 1;
23     int opa,opb;
24     for(i = 1;i <= m;i++)
25     {
26         scanf("%d%d",&opa,&opb);
27         if(opa == 0)
28         {
29             fin = g[fin][opb-1];
30         }
31         else if(opa == 1)
32         {
33             record[opb] = fin;
34             printf("%d\n",fin);
35         }
36         else
37             fin = record[opb];
38     }
39     printf("%d",fin);
40     system("pause");
41     return 0;
42 }

 

 

标签:游戏,哲哲,存档,档位,打游戏,剧情,L2,include
From: https://www.cnblogs.com/rax-/p/17252378.html

相关文章

  • L2-039 清点代码库
       上图转自新浪微博:“阿里代码库有几亿行代码,但其中有很多功能重复的代码,比如单单快排就被重写了几百遍。请设计一个程序,能够将代码库中所有功能重复的代码找出......
  • L2-037 包装机
    一种自动包装机的结构如图1所示。首先机器中有 N 条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。......
  • 使用html2canvas+jspdf将页面转为pdf并下载
    1、安装html2canvas和jspdfnpminstallhtml2canvasnpminstalljspdf2、新建文件htmlToPdf.ts//导出页面为PDF格式importhtml2Canvasfrom'html2canvas'impor......
  • 使用html2canvas+jspdf将页面转为pdf并下载
    需求:我有一个页面,是由多个模块组成的,现在我需要把页面转为pdf并下载,但是因为pdf自动换页以后会把我的模块给截开,不好看甚至内容被裁开,所以我需要判断当前页面加上这个模块......
  • M3L2鞅理论
                        ......
  • wsl2下Ubuntu开发环境配置
    一、安装docker参考这里 https://docs.docker.com/engine/install/ubuntu/1.卸载旧版本的docker(如果有的话)sudoapt-getremovedockerdocker-enginedocker.iocont......
  • L2-001 紧急救援
    #include<iostream>#include<cstring>#include<algorithm>#include<vector>usingnamespacestd;intg[510][510];intnum[510];intdist[510];intst[510];//st......
  • 重磅:RHCA架构师新班要开课啦:《利用红帽 Ceph 存储的云存储(CL260)》
    培训安排线下+线上可同时学习2023年3月25日开始—4月15日结束注:●以上为课程时间计划课程介绍利用红帽Ceph存储的云存储(CL260)课程适合存储管理员以及在生产数据中心环境下......
  • WSL2 设置代理
    添加到~/.bashrcexportHOSTIP=$(cat/etc/resolv.conf|grep"nameserver"|cut-f2-d"")exporthttp_proxy="http://$HOSTIP:7890"exporthttps_proxy="http:/......
  • BUU pwn jarvisoj_level2_x64 64位函数调用栈
    jarvisoj_level2_x64文件是64位ELF文件IDA查看函数vuln,明显栈溢出查看字符串,发现存在'/bin/sh',地址为0x600A90查看函数,发现存在system函数,地址为0x4004c0。注意不能......