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

简介: L2-040 哲哲打游戏 (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(即存档)操作,在一行中输出存档的剧情点编号。

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


输入样例:

1. 10 11
2. 3 2 3 4
3. 1 6
4. 3 4 7 5
5. 1 3
6. 1 9
7. 2 3 5
8. 3 1 8 5
9. 1 9
10. 2 8 10
11. 0
12. 1 1
13. 0 3
14. 0 1
15. 1 2
16. 0 2
17. 0 2
18. 2 2
19. 0 3
20. 0 1
21. 1 1
22. 0 2


输出样例:

1. 1
2. 3
3. 9
4. 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=1e5+10;
vector<int>v[N];
int read[N];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        int k,x;
        cin>>k;
        while(k--)
        {
            cin>>x;
            v[i].push_back(x);
        }
    }
    int p=1;
    while(m--)
    {
        int a,b;
        cin>>a>>b;
        if(a==0) p=v[p][b-1];//选择
        else if(a==1) cout<<p<<endl,read[b]=p;//存档
        else p=read[b];//读档
    }
    cout<<p;
    return 0;
}


目录
相关文章
|
Java
微信红包的模拟代码
微信红包的模拟代码
127 1
|
6月前
【错题集-编程题】春游(模拟 - 分情况讨论)
【错题集-编程题】春游(模拟 - 分情况讨论)
|
6月前
(模拟)L1-019. 谁先倒(2016)
(模拟)L1-019. 谁先倒(2016)
43 1
模拟双色球小程序
模拟双色球小程序
|
JavaScript
小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌、打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略。但是小明暂时不关心这一些,
小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌、打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略。但是小明暂时不关心这一些,
354 0
小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌、打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略。但是小明暂时不关心这一些,
|
存储
L2-028 秀恩爱分得快 (25 分)(模拟)
L2-028 秀恩爱分得快 (25 分)(模拟)
196 0
|
算法 测试技术
1003 我要通过! (20 分)
1003 我要通过! (20 分)
L2-029 特立独行的幸福 (25 分)(数组模拟)
L2-029 特立独行的幸福 (25 分)(数组模拟)
124 0
L1-062 幸运彩票 (15 分)
L1-062 幸运彩票 (15 分)
119 0
|
测试技术
1003 我要通过 (20 分)
1003 我要通过 (20 分)
91 0