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

PTA L2-040 哲哲打游戏

时间:2024-03-30 16:32:48浏览次数:21  
标签:游戏 哲哲 存档 档位 打游戏 剧情 L2 操作

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

为简化模型,我们不妨假设游戏有 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.记录剧情点之间的关系

2.执行题目操作

代码:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>

using namespace std;

const int N = 100010,M = 110;

vector<vector<int>> g(N);//记录每个点能到那些点
int backup[M];//存档
int n = 0,m = 0;

int main()
{
    scanf("%d%d",&n,&m);
    for(int i = 1;i <= n;i++)
    {
        int k = 0;
        scanf("%d",&k);
        g[i].push_back(k);
        while(k--)
        {
            int t = 0;
            scanf("%d",&t);
            g[i].push_back(t);
        }
    }
    int now = 1;//现在 在那个点
    for(int i = 0;i < m;i++)
    {
        int op = 0,t = 0;
        scanf("%d%d",&op,&t);
        if(!op) now = g[now][t];
        else if(op == 1)
        {
            printf("%d\n",now);
            backup[t] = now;//记录存档点
        }
        else now = backup[t];//获取存档
    }
    printf("%d\n",now);
    return 0;
}

结果:

标签:游戏,哲哲,存档,档位,打游戏,剧情,L2,操作
From: https://blog.csdn.net/m0_75081848/article/details/137176356

相关文章

  • L2-046 天梯赛的赛场安排 团体程序设计天梯赛-练习集 c++ 易懂 模拟
    天梯赛使用OMS监考系统,需要将参赛队员安排到系统中的虚拟赛场里,并为每个赛场分配一位监考老师。每位监考老师需要联系自己赛场内队员对应的教练们,以便发放比赛账号。为了尽可能减少教练和监考的沟通负担,我们要求赛场的安排满足以下条件:每位监考老师负责的赛场里,队员人数不得......
  • L2-047 锦标赛
    这题没做出来,查了一些博客,下面是我比较能接受的一种写法。读完题可以发现这是一个满二叉树,并且可以得到每场比赛失败者的信息(决赛是胜利者和失败者都可以得到)对于一场比赛,它的胜利者要么是左孩子中的胜利者,要么是右孩子中的胜利者,那我们就可以先假设是左孩子的胜利者,如果不行就......
  • L2-025 分而治之(与L2-013 红色警戒 差不多一模一样)
    原题链接题目:分而治之,各个击破是兵家常用的策略之一。在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破。为此参谋部提供了若干打击方案。本题就请你编写程序,判断每个方案的可行性。输入输出格式:输入在第一行给出两个正整数N......
  • L2-046 天梯赛的赛场安排
    和这道题真的有壁,拿起来就做,然后做错了。又看了半天题目,才知道大概啥意思。每一轮都需要给人数最多的学校分配位置,如果人数大于c,分配一个教室剩下的人还要再放回进行第二轮,而不是一次性给这个学校分配完。#include<bits/stdc++.h>usingnamespacestd;constintmaxn=5005......
  • 安装并配置fail2ban防止cc攻击
    通过下面命令安装fail2banyum-yinstallfail2ban启动systemctlstartfail2ban查看状态systemctlstatusfail2ban设置开机启动systemctlenablefail2ban检查版本fail2ban-client-Vfail2ban-sever-V检查配置文件是否有误fail2ban-client-d配置后需要重启服......
  • L2-044 大众情人
    测试点4一开始没过去,以为是数据范围的问题。找半天才发现是floyd三层循环k那个写反了,害。#include<bits/stdc++.h>usingnamespacestd;vector<int>male,female;intdis[510][510];intmain(){ memset(dis,0x3f,sizeof(dis)); intn; cin>>n; for(inti=1;i......
  • 逻辑链路控制与适配协议(L2CAP)
    逻辑链路控制与适配协议通常简称为L2CAP(LogicalLinkControlandAdaptationProtocol),它向上连接应用层,向下连接控制器层,发挥主机与控制器之间的适配器的作用,使上层应用操作无需关心控制器的数据处理细节。经典蓝牙的L2CAP层比较复杂,它实现了协议复用、数据分段与重组、封装......
  • L2-043 龙龙送外卖
    考察的是贪心+记忆化搜索。最短路=走过的路径*2-从根到小区最深路径长度#include<bits/stdc++.h>usingnamespacestd;constintmaxn=1e5+10;intp[maxn],dis[maxn],dp[maxn];intmaxdepth=0,sumpath=0;intdfs(ints){//记忆化搜索 if(p[s]==-1)return0......
  • 【新闻】室温超导体来了?可以在超级计算机上写代码,用超级计算机打游戏?
    2023年7月,韩国科学家团队表示,他们发现了全球首个室温超导材料,一种名为“改性铅磷灰石晶体结构”的材料。7月31日,该团队第二篇论文《超导体Pb10xCux(PO4)60o在室温常压下表现出悬浮现象及其机理》在arXiv上发布,其团队制造的LK-99室温超导材料或许可以在一个月之内被复制。如果......
  • 团体程序设计天梯赛 L2-029 特立独行的幸福
    L2-029特立独行的幸福分数25对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到1,就称该数为幸福数。1是一个幸福数。此外,例如19经过1次迭代得到82,2次迭代后得到68,3次迭代后得到100,最后得到1。则19就是幸福数。显然,在......