2010程序设计大赛试题
2010年武汉科技大学程序设计大赛
初赛试题
试题一:网络布线
计算机网络要求网络中的计算机被连接起来,本问题考虑一个“线性”的网络,在这一网络中计算机被连接到一起,并且除了首尾的两台计算机只分别连接着一台计算机外,其它任意一台计算机恰连接着两台计算机。图1中用圆点表示计算机,它们的位置用直角坐标表示。网络连接的计算机之间的距离单位为英尺。
图1 网络中的计算机
由于很多原因,我们希望使用的电缆长度应可能地短。你的问题是去决定计算机应如何被连接以使你所使用的电缆长度最短。在设计方案施工时,电缆将埋在地下,因此连接两台计算机所要用的电缆总长度等于计算机之间的距离加上额外的16英尺电缆,以从地下连接到计算机,并为施工留一些余量。
图2给出了图1中计算机的最优连接方案,这样一个方案用电缆的总长度是
(4 + 16) + (5 + 16) + (5.38 + 16) + (11.18 + 16) = 90.01英尺
图2 示例的最优连接路径
编程要求:
基本要求:
输入网络中的计算机总数和每台计算机的坐标。
输出使电缆长度最短的连接方案。给出最优连接方案中每两台相邻计算机之间的距离,以及总的电缆长度。
提高要求:
参考图2,用图形化的方式显示结果,包括点的坐标、最优路径、相邻计算机之间的距离。
试题二:数独游戏
在一个9×9的大正方形中,包含9个3×3的小正方形。如图3所示。可以看到,其每行、每列、每个小正方形,都有9个空格。
图3 9×9的大正方形
要求只用1到9这些数字,填满大正方形中所有的81个空格,同时满足:
(1)在每列的9个空格中分别填入1到9,且每个数字在此列中只能出现一次; (2)在每行的9个空格中分别填入1到9,且每个数字在此行中只能出现一次;
(3)在每个小正方形的9个空格中分别填入1到9,且每个数字在此正方形中只能出现一次;
游戏一开始会给定了某些空格的值,如图4所示。参加游戏的人根据这些已知的值以及上面的约束条件,推理出剩余的空格的值。图5为示例的解题结果。
图4 数独题目示例
图5 解题结果
编程要求:
层次一:只编写“数独计算器”
显示一个空白的9×9大正方形,请玩家自己输入要求解的题目,然后系统帮助玩家解答。
层次二:加入“数独题目生成器”
系统自动生成数独题目,玩家进行解答,系统可判定玩家答案的正确性。玩家也可以查看解答。
层次三:附加要求
在层次二的基础上,可以让玩家选择题目难度,生成不同难度级别的数独题目;可以设置提示功能,在玩家解题过程中帮他提示错误或给出若干空格的解答;可以根据题目难度和解题时间,对玩家的水平进行打分;