L2-040 哲哲打游戏 - java

题目解析

给定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;
	}

}


团体程序设计天梯赛-练习集-java

赞赏