智能算法挑战复赛 高 中组
(总共 4 道题)
1. 大数比大小
【 题目描述 】
输入两个很大的 十进制 正 实数(长度超过 20 位) ,输出数值较大的数。
说明:
1) 两个数都大于 10000000000000000000 ;
2)实数包含有小数点的数,一个数里只可能有一个小数点,且不在数的最前或
最后。
【 输入格式 】
输入两行,每行一个数字
【 输出格式 】
数值较大的数。
如果两数相等,则输出 “ equation ” 。
如果输入的数不符合数字规则,则输出 “ error ” 。
【 样例输入 】 (测试数据不包含本样例)
11111111111111111111111111111111111111
2222222222222222222222222222222222222222
【 样例输出 】
2222222222222222222222222222222222222222
2. 多层汉诺塔
【 题目描述 】
汉诺塔是一个有意思的游戏 ,每个柱子上套上多个中心有洞的圆盘 ,每次只能移
动一个圆盘,并且每个圆盘不能放在比它面积小的圆盘的上面。现在有三套圆盘并
叠加放在一个柱子上了, 请移动圆盘, 使 每个柱子上的圆盘都按照相同的顺序从大
到小的摆放好,也就是 把 三 份 盘子 平均 分开。请问对于 n个不同数量的圆盘(也就
是共有 3*n 个盘子),分别在每个柱子上分好 n个盘子,最少 需要移动多少步?示
意图如下图。
【 输入格式 】
输入共 1行,包括一个正整数 n
【 输出格式 】
输出共 1行,一个整数, 表示需要移动圆盘的最少的步骤数 。
【 样例输入 】
1
【 样例输出 】
2
3. 在 AI 下棋程序中,计算猫抓老鼠游戏的概率
【题目描述】
有这样一个游戏 : 在一个 n*n 的格子棋盘里 , n是奇数 ; 有两种棋子 , 一个是只
能横向移动的棋子猫,一个是可以上下左右移动的棋子老鼠。假设老鼠在棋盘的正
中央,第一步老鼠将进行上下左右的随机移动。棋子猫在从棋盘的中间行的最左边
向棋盘的最右边移动,棋子猫每次移动只能是从左到右移动一步,第一步时猫位于
棋盘的中间行的最左边格子。请问:在猫移动到棋盘外面前,会有多大概率抓到老
鼠?
【 输入 格式】
输入 一个大于 1的奇数 n,表示棋盘的大小。
【 输出 格式】
棋子猫抓到棋子老鼠的概率 。 (小数四舍五入保留 4位有效数字)
【 样例输入 】 (测试数据不包含本样例)
3
【 样例输出 】
0.6667
4. 过河问题
【题目描述】
有 n个人要渡河,但只有一条小船,这条小船一次只能坐下最多两个人,并且
只有一副 船桨。每个人划船的速度不一样,如果两个人一起上船,由于重量变大,
划船的速度相当于是划船速度 最慢的那个人速度。假设给出每个人单独划船过河所
花费的时间 Ti,请问所有人都过河的总时间最短的时间?
【输入格式】
输入 两行,第一行是一个整数,表示要过河的 n个人 。
第二行,是 n个整数,按速度从快到慢排序好的每个人划船过河的时间。
【输出格式】
输出一行 ,给出所有人过河所花费最短的时间 。
【样例输入 1】 (测试数据不包含本样例)
3
1 2 3
【样例输出 1】
6
【样例输入 2】 (测试数据不包含本样例)
4
1 2 5 10
【样例输出 2】
6
17
C++智能算法复赛高中组,信息素养大赛智能算法C++复赛高中组真题