华师一附中OI组
标题:
罗杰游戏
[打印本页]
作者:
admin
时间:
2020-1-20 10:28
标题:
罗杰游戏
罗杰游戏由一张棋盘和‘罗杰”构成。棋盘由很多个小格组成,每个小格上刻有一个数字。-1或0-255。罗杰是一个立方体,有六个面,每面上刻有一个数字1-6。这六个数字出现且仅出现一次。
0 1 1 2
-1 1 15 4
0 4 3 -1
1 2 1 2
棋盘举例
我们开始时把罗杰放在棋盘中的一个小格上,然后让其向前、后、左、右四个方向翻滚至邻近小格中。游戏要求经过若干次翻滚后,让罗杰到达指定小格。罗杰绝对不得进入标有-1的小格,否则就会被做成烤肉串而使得我们的游戏结束。罗杰每进入一个小格后,将其顶面的数字同该小格的数字相乘,所得结果累加即得到罗杰的旅行费用。
开始时我们能看到罗杰的某些面上的数字,同样我们可以指定当罗杰最终到达目的格时某些面上应出现的数字。对于这些数字,我们可以任意指定。
任务一
在这个任务里,我们规定罗杰只能向前或向右翻滚。
任务二
我们将任务一扩展一下,让罗杰自由活动。
输入
输入文件的第一行是数字1或2,表示是任务一还是任务二。文件的第二行是两个整数M和N(M,N<40),给出了棋盘的列数和行数。接下来的N行每行表示棋盘的一行,有M个数,依次给出了该行上每列的数。其后的两行分别给出了罗杰的出发信息和到达信息。每行开始的两个正整数给出了罗杰所在格的列号和行号。接下来的六个数字分别表示了罗杰的顶,底,前、后、左、右各面的数字。0表示未知或任意。
输出
输出文件的第一行给出了罗杰的最小旅行费用。如果罗杰不可能按要求到达目的地,则输出-1。否则其后每行给出了罗杰的旅行情况。从出发格到目的格,每行表示了罗杰的 一个位置,包括9个整数,依次给出了罗杰的当前旅行费用、所在格的列编号、行编号,以及罗杰6个面上的数字,顺序同输入文件。注意这时你的程序必须给出罗杰的完整信息,亦即各面上的数字必须是1-6。
样例输入
2
10 10
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 9 8 7 6 5 4 1
1 1 9 8 7 6 5 4 1 1
1 1 8 7 6 5 4 1 1 1
1 1 7 6 5 4 1 1 1 1
1 1 6 5 4 1 1 1 1 1
1 1 5 4 1 1 1 1 1 1
1 1 4 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
3 3 0 0 0 0 0 0
8 8 0 0 0 0 0 0
样例输出
44
0 3 3 6 5 3 1 2 4
3 3 2 3 1 5 6 2 4
5 4 2 2 4 5 6 1 3
6 5 2 1 3 5 6 4 2
10 6 2 4 2 5 6 3 1
13 7 2 3 1 5 6 2 4
15 8 2 2 4 5 6 1 3
16 9 2 1 3 5 6 4 2
20 10 2 4 2 5 6 3 1
26 10 3 6 5 4 2 3 1
28 10 4 2 4 6 5 3 1
29 9 4 1 3 6 5 2 4
34 9 5 5 6 1 3 2 4
38 8 5 4 2 1 3 5 6
41 8 6 3 1 4 2 5 6
43 8 7 2 4 3 1 5 6
44 8 8 1 3 2 4 5 6
欢迎光临 华师一附中OI组 (http://hsyit.cn/)
Powered by Discuz! X3.2