模拟算法针对性训练
1. 电梯升降
题目描述
某城市最高的建筑只有一部电梯。一份电梯升降任务表由 N 个正整数组成,这些数字表示电梯按照给定的顺序停留的楼层号。 电梯升一层花费 6 秒钟,降一层花费 4 秒钟,并且每次停留花费 5 秒钟。 对于每一份任务表,你要计算出完成全部升降任务所花费的总时间。一开始,电梯在第 0 层,并且最终完成任务时电梯不必一定返回到 0 层。
输入描述
有多组测试样例。每组测试样例包含一个正整数 N,接下来是 N 个正整数。 在输入中,所有的数字都小于 100。当 N=0 时,表示输入结束。
输出描述
对于每一组测试样例,在一行中输出总时间。
样例
输入
1 2 3 2 3 1 0
输出
17 41
2. 数列
题目描述
给定一个正整数 k(3≤k≤15),把所有 k 的方幂及所有有限个互不相等的 k 的方幂之和构成一个递增的序列,例如,当 k=3 时,这个序列是:1, 3, 4, 9, 10, 12, 13,…(该序列实际上就是:3^0, 3^1, 3^0+3^1, 3^2, 3^0+3^2, 3^1+3^2, 3^0+3^1+3^2…) 请你求出这个序列的第 N 项的值(用 10 进制数表示)。例如,对于 k=3,N=100,正确答案应该是 981。
输入描述
输入只有 1 行,为 2 个正整数,用一个空格隔开:k N(k、N 的含义与上述的问题描述一致,且 3≤k≤15,10≤N≤1000)。
输出描述
输出为计算结果,是一个正整数。(整数前不要有空格和其他符号)。
样例
输入
3 100
输出
981
题目二【数列】
第一步:先明确'k=3,N=4'要找什么 第二步:把 N=4 转化为二进制(核心关键) 第三步:二进制和'3 的方幂'的对应规则 第四步:计算最终结果 再拆解'逐位计算'的过程(模拟代码执行逻辑) 总结(针对 k=3,N=4 的核心)
3. 扑克洗牌问题
题目描述
给您 2n 张牌,编号为 1,2,3,4,5……n,n+1,……2n,这也是最初牌的顺序。一次洗牌是把序列变为 n+1,1,n+2,2,n+3,3……2n,n。可以证明,对于任意自然数 n,都可以在经过 m 次洗牌后重新得到初始的顺序。编程对于小于 10000 的自然数 n(n 从键盘输入)的洗牌,求出重新得到初始顺序的洗牌次数 m 的值,并显示洗牌过程。
输入描述
输入整数 n
输出描述
显示洗牌过程,并输出洗牌次数 m
样例
输入
5
输出
1 2 3 4 5 6 7 8 9 10 1:6 1 7 2 8 3 9 4 10 5 2:3 6 9 1 4 7 10 2 5 8 3:7 3 10 6 2 9 5 1 8 4 4:9 7 5 3 1 10 8 6 4 2 5:10 9 8 7 6 5 4 3 2 1 6:5 10 4 9 3 8 2 7 1 6 7:8 5 2 10 7 4 1 9 6 3 8:4 8 1 5 9 2 6 10 3 7 9:2 4 6 8 10 1 3 5 7 9 10:1 2 3 4 5 6 7 8 9 10 m=10
4. 冰壶比赛
题目描述
在冰壶比赛中,给出一个目标点 P 以及一个规定的正整数 r。每一局由甲和乙两队轮流投冰壶各 8 次后,该局比赛结束。此时,哪一方的冰壶最终离目标点 P 更近,该方得分,另一方不得分。得分方每颗离目标点 P 距离小于或等于 r、位置较另一队所有冰壶都更接近目标点 P 的冰壶都可以得 1 分 比赛最多进行


