当前位置:首页 >> 学科竞赛 >>

NOI1991试题


NOI 91 试题
第一题
人和计算机作猜数游戏。人默想一个位数,由计算机来猜。计算机将所猜的数 显示到屏幕上,并问两个问题: 1.有几个数字猜对了? 2.猜对的数字中有几个位置也对? 人通过键盘来回答这两个问题。计算机一次又一次地猜,直到猜对为止。 比如人默想的一个数是 5122,假定计算机第一次猜 1166,然后问你: (1)有几个数字猜对了? (2)猜对的数字中有几个位置也对? 假定计算机第二次猜 1287,然后问你: (1)有几个数字猜对了? (2)猜对的数字中有几个位置也对? 如果计算机最后一次猜 5122,然后你: (1)有几个数字猜对了? (2)猜对的数字中有几个位置也对? 则表示猜完了。计算机显示最后猜中的数,并报告并猜了多少次。 问题 1 编程实现这样一个猜四位数的游戏程序。屏幕显示格式为: 第二行显示计算机所猜的四位数 第三行提问猜对的数字个数,用“Number: ” 第四行提问位置对的数字个数,用“Position: ” 第五行显示当前已猜的步数,用“Step xx” 注:其中方框中的数字由键盘输入。最后给出结束信息,其它由编程者自定。 问题 2 仍然是这样一个游戏,但要求计算机既是猜数者,又要模拟默想这个 数的人(要猜的数由键盘输入)。屏幕显示格式为: 第一行显示人所默想的数,用“ ” xxxx 第二行至第五行同问题① ,只不过方框内的数不再由键盘输入,而是计算机判断 后自动显示。 问题 3 从文本文件 GUESS.DAT 中读入 20 个四位数,一个接一个地 让计算机猜,统计猜中所需的总步数。

第二题
攀登某高山,假定上下山速度相等。从山脚到顶峰有 N 天的路程(N<10=。 1.某登山队有队员若干,每个队员最多可负载 M 天的给养,其中

M>=N+1,每人每天所消耗的给养相同。只要在 N 天内全队有一个队员登上顶 峰,并且在 2N 天内所有参加登山的队员安全返回山脚,就算此次登山成功。登 山规则:参加登山的队员同时同地出发;给养可以相互补给,但必须由登山队 员随自携带。 编程要求 用键盘输入 M、N,然后输出登山计划,使得此次登山所参加的队员 数量少,而且出发时所带给养总数最少。登山计划的内容是:有多少队员参加 登山,在出发时每人各带多少天的给养,每人各在出发几天后返回。 2.某登山队有 P 名队员(P<10),每天可负载最大给养 量和每天消耗的给养 量各不相同,只要在 N 天内全队有一个队员登上顶峰,并且在 2N 天内所有参加 登山的队员安全返回山脚,就算此次登山成功。登山规则:参加登山的队员同 时同地出发,在山上不许停留;;给养可以相互补给,但必须由登山队员随自 携带。 编程要求 用键盘输入天数 N,队员数 P,队员按 1,2,…,P 编号。然后按编号 输入每个队员的可负载最大给养量和每天的消耗的给养量(给养单位为克)。 输出两个登山计划。其一是,在参加登山的队员数最少的情况下消耗总给养量 尽可能少的计划;其二是,消耗给养量少的计划。登山计划的内容是:有多少 队员参加登山,在出发时每人各带多少天的给养,每人各在出发几天后返回。


相关文章:
更多相关标签: