题目解析
给定n个剧情点
求出m次游戏操作中 的 存档的剧情点编号 及最后的剧情点编号
解题思路
大模拟
一开始先来一个存档的数组 cun 去存存档,存档的大小为题目要求的大小,咱不差这点内存(怕死),去存储题目要求的剧情点。再来一个 pos 去存储到达那个点了
然后判断指令
输入 0 则在 一开始的 pos - 1 行中的 x 这个游戏操作
输入 1 则将 pos 存储到 cun[x] 中去 ,并输出 pos
输入 2 则将 cnt[x] 的剧情点读出到 pos 中
代码
import java.io.*;
import java.math.*;
import java.util.*;
public class Main
{
public static void main(String[] args) throws IOException
{
int n = ini(), m = ini();
int map[][] = new int[n + 10][];
for (int i = 1; i <= n; i++)
{
int k = ini();
map[i] = new int[k + 10];
for (int j = 1; j <= k; j++)
map[i][j] = ini();
}
// 存档
int cun[] = new int[100 + 10];
int pos = 1; // 默认从第一个存档开始
while (m-- > 0)
{
int k = ini(), x = ini();
if (k == 0)
pos = map[pos][x];
else if (k == 1)
{
cun[x] = pos;
out.println(pos);
} else if (k == 2)
pos = cun[x];
}
out.println(pos);
out.flush();
out.close();
}
static StreamTokenizer sc = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static PrintWriter out = new PrintWriter(System.out);
static int ini() throws IOException
{
sc.nextToken();
return (int) sc.nval;
}
}