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

出题人:DAI, Longao
单位:杭州百腾教育科技有限公司
哲哲是一位硬核游戏玩家。最近一款名叫《达诺达诺》的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切!

为简化模型,我们不妨假设游戏有 N 个剧情点,通过游戏里不同的操作或选择可以从某个剧情点去往另外一个剧情点。此外,游戏还设置了一些存档,在某个剧情点可以将玩家的游戏进度保存在一个档位上,读取存档后可以回到剧情点,重新进行操作或者选择,到达不同的剧情点。

为了追踪硬核游戏玩家哲哲的攻略进度,你打算写一个程序来完成这个工作。假设你已经知道了游戏的全部剧情点和流程,以及哲哲的游戏操作,请你输出哲哲的游戏进度。

输入格式

在这里插入图片描述

输出格式

对于每个 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

思路

模拟题,看懂题目即可,废话不多说,上代码

#include <bits/stdc++.h>
using namespace std;

vector<int> v[100010];
vector<int> v2;
int n, m;
int d[110];
int main()
{
	int n;
	cin>>n>>m;
	for(int i = 1; i <= n; i++){
		int num, t;
		cin>>num;
		while(num--){
			cin>>t;
			v[i].push_back(t);
		}
	}
	int here = 1;
	for(int i = 1; i <= m; i++){
		int t, j;
		cin>>t>>j;
		if(t == 0){
			here = v[here][j-1];
		}else if(t == 1){
			d[j] = here;
			v2.push_back(here);
		}else if(t == 2){
			here = d[j];
		}
	}
	for(auto it : v2)
		cout<<it<<endl;
	cout<<here<<endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值