2009 英特尔® 线程挑战赛 第八题 骑士巡游

denghui0815 2009-09-20 10:50:11
加精
骑士巡游问题是指使用国际象棋棋盘上的一个马,尝试按照马的标准走法(向右或向左移动两格,然后再向上或向下移动一格;或者向上或向下移动两格,然后再向右或向左移动一格)走过棋盘上的每一格且每格只能走一次。对于爱好旅行的骑士,游遍整个棋盘是一件很有成就感的事情。但在经济困难的时候,可能无法走遍棋盘的每个方格。因此,有闲暇的骑士就想知道从给定的起点方格出发,然后再回到这个起始方格(封闭式路线)的旅程究竟有多少种走法。

问题:编写一段多线程代码,用来计算马在棋盘上从给定方格出发,走过一定格数可能采用的封闭走法总数。要使用的输入文件和输出文件的名称将通过命令行指定。输入文件应详细列出要走的棋盘大小和形状、马的起点方格、要走的步数以及要在输出文件中完整打印的走法数量。执行应用程序后,输出文件应包含所要求数量的走法(要走过的棋盘方格的列表)以及一个汇总行,其中包含根据输入文件中给定的条件而得出的可能走法总数。

输入文件格式:输入文件应包含五行,格式如下所示:
第 1 行 – 一个整数,指定棋盘上的列数(纵列数)
第 2 行 – 一个整数,指定棋盘上的行数(横排数)
第 3 行 – 以代数记谱法(用一个小写字母指定列的位置,一个整数指定行的位置)表示的马的起点方格
第 4 行 – 一个整数,指定要走过的方格数
第 5 行 – 一个整数,指定要在输出文件中打印的完整走法数

输出文件格式:每个打印的完整走法应该是一列以代数记谱法表示的棋盘方格,每个方格占一行,从输入文件中给定的方格开始并以该方格结束。如果要走的步数指定为 8,那么打印的走法将在 9 行中列出 9 个方格(1 个起点方格和 8 个目标方格,其中最后一个目标方格就是起点方格)。在每种打印的走法后面,应打印一个空白行或其他格式的分隔行。打印完所要求数目的走法之后,应打印一个汇总行,给出合格走法的总数。

如果无法完成符合给定要求的走法,输出文件中应简单说明这种情况。

输入文件示例:
-------------------
8
8
a8
8
2

输出文件示例:
-------------------
a8
b6
d7
f6
h7
f8
e6
c7
a8
-------
a8
b6
d5
c3
a4
c5
e6
c7
a8
-------

总共有 880 种可能的 8 步走法

计时:将使用“骑士巡游”应用程序的总执行时间进行计分。(要获得最准确的计时结果,提交的代码应包含用于计时并将时间打印到标准输出的计时代码,否则将使用外部秒表进行计时。)

...全文
622 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
hawkhein 2009-09-23
  • 打赏
  • 举报
回复
mark
surepretty 2009-09-23
  • 打赏
  • 举报
回复
需要高IQ,偶遁走~~
denghui0815 2009-09-23
  • 打赏
  • 举报
回复
8
8
a8

8 880
10 17208
12 316124
14 5302024
16 80672058
18 1108463036

8
8
d4
8 21666
10 396548
12 6608498
14 99827588
16 1363576016
awfi1986 2009-09-22
  • 打赏
  • 举报
回复
见到这样的我就晕了。
amis90909 2009-09-22
  • 打赏
  • 举报
回复
一般有多长时间考虑?可以的话,应该尝试的,好题啊~~~
grzx2210 2009-09-22
  • 打赏
  • 举报
回复
ding
shaocai 2009-09-22
  • 打赏
  • 举报
回复
挑战赛。。。头都大啊,还要做那么多题的
smc520zj 2009-09-22
  • 打赏
  • 举报
回复
顶下,想法挺好,做起来就挺棘手的.
XyRbj 2009-09-22
  • 打赏
  • 举报
回复
我靠。崩溃了。
lvhong84 2009-09-22
  • 打赏
  • 举报
回复
有谁做出来了记得告诉我一声
liguiman 2009-09-21
  • 打赏
  • 举报
回复
..............
denghui0815 2009-09-21
  • 打赏
  • 举报
回复
呵呵 这个需要好的算法 最锻炼你的能力
louyong0571 2009-09-21
  • 打赏
  • 举报
回复
又是这样题目,我见到这种题目就头大
wangqingqing1214 2009-09-21
  • 打赏
  • 举报
回复
xiexie!
ruanjianpeixun 2009-09-21
  • 打赏
  • 举报
回复
先占个位置
linmengwn 2009-09-21
  • 打赏
  • 举报
回复
写的不错
paley_2008 2009-09-21
  • 打赏
  • 举报
回复
非常好!顶!

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧