华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1378|回复: 0
打印 上一主题 下一主题

罗杰游戏

[复制链接]

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
跳转到指定楼层
楼主
发表于 2020-1-20 10:28:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
罗杰游戏由一张棋盘和‘罗杰”构成。棋盘由很多个小格组成,每个小格上刻有一个数字。-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


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-11-2 02:29 , Processed in 0.102789 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表